[Mesa-dev] [PATCH] egl/android: implement minimal swap_buffers_with_damage
Eric Engestrom
eric.engestrom at imgtec.com
Mon Oct 24 08:34:53 UTC 2016
On Friday, 2016-10-21 16:07:07 -0500, Rob Herring wrote:
> Since commit 0a606a400fe3 ("egl: add eglSwapBuffersWithDamageKHR"),
> Android has been broken because the function eglSwapBuffersWithDamageKHR
> is provided regardless of the extension being present. Also, the Android
> meta-EGL always advertises the extension regardless of the underlying
> EGL implementation.
Where is that? I'd like to have a look when I find some time.
> As there doesn't seem to be a simple way
> conditionally make the EGL function ptr NULL, just implement a brain
> dead version for Android EGL.
Ignoring the rectangles and doing a full swap regardless is indeed
allowed by the spec, so this is:
Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>
Thanks for tracking down this issue!
Cheers,
Eric
>
> Cc: Rob Clark <robdclark at gmail.com>
> Cc: Eric Engestrom <eric.engestrom at imgtec.com>
> Cc: Emil Velikov <emil.velikov at collabora.com>
> Signed-off-by: Rob Herring <robh at kernel.org>
> ---
> src/egl/drivers/dri2/platform_android.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
> index 142ef05bd1ea..2a6527a34407 100644
> --- a/src/egl/drivers/dri2/platform_android.c
> +++ b/src/egl/drivers/dri2/platform_android.c
> @@ -483,6 +483,14 @@ droid_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
> return EGL_TRUE;
> }
>
> +static EGLBoolean
> +droid_swap_buffers_with_damage(_EGLDriver *drv, _EGLDisplay *disp,
> + _EGLSurface *draw, const EGLint *rects,
> + EGLint n_rects)
> +{
> + return droid_swap_buffers(drv, disp, draw);
> +}
> +
> static _EGLImage *
> droid_create_image_from_prime_fd(_EGLDisplay *disp, _EGLContext *ctx,
> struct ANativeWindowBuffer *buf, int fd)
> @@ -876,7 +884,7 @@ static struct dri2_egl_display_vtbl droid_display_vtbl = {
> .create_image = droid_create_image_khr,
> .swap_interval = dri2_fallback_swap_interval,
> .swap_buffers = droid_swap_buffers,
> - .swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
> + .swap_buffers_with_damage = droid_swap_buffers_with_damage,
> .swap_buffers_region = dri2_fallback_swap_buffers_region,
> .post_sub_buffer = dri2_fallback_post_sub_buffer,
> .copy_buffers = dri2_fallback_copy_buffers,
> --
> 2.10.1
>
More information about the mesa-dev
mailing list