2016-08-15 17:34:08 |
Ratchanan Srirattanamet |
description |
I'm porting Ubuntu touch to Samsung Galaxy Tab 2 7.0, which use OMAP GPU. I'm debugging an issue that HWC's set function always return -EFAULT. As I look at HWC's code (at https://github.com/CyanogenMod/android_hardware_ti_omap4/blob/cm-13.0/hwc/hwc.c#L2016) and at SurfaceFlinger's code, it looks like this HWC expects that a call to eglSwapBuffers will eventually call FB HAL's post function, which means that FB's post must be called during HWC's set. Currently, Mir calls FB's post after HWC's set returns.
I have a hack that makes ServerRenderWindow call a callback in HwcFbDevice when ServerRenderWindow's driver_returns_buffer is called. This is intended to show what have to be done, but probably not the right way to do it. With this hack, HWC's set completes successfully, but then HwcFbDevice's commit stalls waiting for vsync forever (which is another bug). |
I'm porting Ubuntu touch to Samsung Galaxy Tab 2 7.0, which use OMAP GPU. I'm debugging an issue that HWC's set function always return -EFAULT. As I look at HWC's code (at https://github.com/CyanogenMod/android_hardware_ti_omap4/blob/cm-13.0/hwc/hwc.c#L2016) and at SurfaceFlinger's code, it looks like this HWC expects that a call to eglSwapBuffers will eventually call FB HAL's post function, which means that FB's post must be called during HWC's set. Currently, Mir calls FB's post after HWC's set returns.
I have a hack that makes ServerRenderWindow call a callback in HwcFbDevice when ServerRenderWindow's driver_returns_buffer is called. This is intended to show what have to be done, but probably not the right way to do it. With this hack, HWC's set completes successfully, but then HwcFbDevice's commit stalls waiting for vsync forever (which is another bug). The hack is available at lp:~peat-new/mir/hack-eglswapbuffer-call-fbpost |
|