[Mesa-dev] [PATCH 0/3] Fix window surface handling in Android EGL code

Tomasz Figa tfiga at chromium.org
Thu Apr 27 09:08:19 UTC 2017


On Wed, Apr 19, 2017 at 4:00 PM, Tomasz Figa <tfiga at chromium.org> wrote:
> This series aims to improve standard conformance and application
> compatibility of Mesa EGL Android code, by changing the window surface
> code to properly handle cases when the buffer queue backing the native
> window is abandoned, which is relied on camera and video frameworks.
>
> Changes from previous RFC patch:
>  - split trivial code moving into a separate patch (Emil),
>  - fix previous rebase error,
>  - use cancelBuffer when destroying the surface to not confuse the
>    consumer (video framework relies on this behavior).
>
> Tomasz Figa (3):
>   egl/android: Move droid_{alloc,free}_local_buffers up the file
>   egl/android; Use ANativeWindow::cancelBuffer in destroySurface
>   egl/android: Dequeue buffers inside EGL calls (v2)
>
>  src/egl/drivers/dri2/egl_dri2.h         |   1 +
>  src/egl/drivers/dri2/platform_android.c | 182 +++++++++++++++++---------------
>  2 files changed, 97 insertions(+), 86 deletions(-)

Sorry guys, please disregard this series. I've stumbled upon some
undocumented assumptions in SurfaceFlinger that prohibit dequeuing the
buffer in eglCreateWindowSurface.

I think we might need to solve the original problem of signalling
native errors by adding proper error reporting to the DRI2 and DRI
image loader code in appropriate drivers, i.e. the correct thing to do
when getting a buffer from native window fails is to signal a
GL_OUT_OF_MEMORY error.

Best regards,
Tomasz


More information about the mesa-dev mailing list