[Mesa-dev] [PATCH] egl/android: Provide an option for the backend to expose KHR_image

Eric Engestrom eric.engestrom at imgtec.com
Thu Dec 7 14:41:41 UTC 2017


On Thursday, 2017-12-07 19:04:41 +0530, Harish Krupo wrote:
> From android cts 8.0_r4, a new test case checks if all the required egl
> extensions are exposed. In the current implementation we expose KHR_image
> if KHR_image_base and KHR_image_pixmap are supported but KHR_image spec
> does not mandate the existence of both the extensions.

Indeed, the spec even explicitly states so:
>   The specifications of EGL_KHR_image_base and EGL_KHR_image_pixmap are
>   required to determine the specification of this extension, although
>   those extentions may not be supported.

Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>

> This patch preserves the current check and also provides the backend
> with an option to expose the KHR_image extension.
> 
> Test: run cts -m CtsOpenGLTestCases -t \
> android.opengl.cts.OpenGlEsVersionTest#testRequiredEglExtensions
> 
> Signed-off-by: Harish Krupo <harish.krupo.kps at intel.com>
> ---
>  src/egl/drivers/dri2/platform_android.c | 1 +
>  src/egl/main/eglapi.c                   | 3 ++-
>  src/egl/main/egldisplay.h               | 1 +
>  3 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c
> index 63223e9a69..0459cc8be2 100644
> --- a/src/egl/drivers/dri2/platform_android.c
> +++ b/src/egl/drivers/dri2/platform_android.c
> @@ -1212,6 +1212,7 @@ dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
>  #if ANDROID_API_LEVEL >= 23
>     dpy->Extensions.KHR_partial_update = EGL_TRUE;
>  #endif
> +   dpy->Extensions.KHR_image = EGL_TRUE;
>  
>     /* Fill vtbl last to prevent accidentally calling virtual function during
>      * initialization.
> diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
> index cec67425e1..5110688f2d 100644
> --- a/src/egl/main/eglapi.c
> +++ b/src/egl/main/eglapi.c
> @@ -504,7 +504,8 @@ _eglCreateExtensionsString(_EGLDisplay *dpy)
>     _EGL_CHECK_EXTENSION(KHR_gl_texture_3D_image);
>     _EGL_CHECK_EXTENSION(KHR_gl_texture_cubemap_image);
>     if (dpy->Extensions.KHR_image_base && dpy->Extensions.KHR_image_pixmap)
> -      _eglAppendExtension(&exts, "EGL_KHR_image");
> +      dpy->Extensions.KHR_image = EGL_TRUE;

I feel like this doesn't belong here anymore though; should we move it
to platform_*.c, where KHR_image_pixmap is enabled?

This would be a separate patch though, feel free to land this one already.

> +   _EGL_CHECK_EXTENSION(KHR_image);
>     _EGL_CHECK_EXTENSION(KHR_image_base);
>     _EGL_CHECK_EXTENSION(KHR_image_pixmap);
>     _EGL_CHECK_EXTENSION(KHR_no_config_context);
> diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
> index 52fb4ce21b..0005c81836 100644
> --- a/src/egl/main/egldisplay.h
> +++ b/src/egl/main/egldisplay.h
> @@ -122,6 +122,7 @@ struct _egl_extensions
>     EGLBoolean KHR_gl_texture_2D_image;
>     EGLBoolean KHR_gl_texture_3D_image;
>     EGLBoolean KHR_gl_texture_cubemap_image;
> +   EGLBoolean KHR_image;
>     EGLBoolean KHR_image_base;
>     EGLBoolean KHR_image_pixmap;
>     EGLBoolean KHR_no_config_context;
> -- 
> 2.15.1
> 


More information about the mesa-dev mailing list