On Thursday, 2017-11-09 09:40:43 +0200, Tapani Pälli wrote: > Patch adds support and capability to match with new surface attribute, > component type. Currently no configs with floating point type are exposed.
Have you tested android O with this patch? I think it might fail to start, as it requires floating point configs to be present if the extension is advertised. Other than that, it looks all good to me: Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com> > > With this change, following dEQP test starts to pass: > > dEQP-EGL.functional.choose_config.color_component_type_ext.dont_care > dEQP-EGL.functional.choose_config.color_component_type_ext.fixed > dEQP-EGL.functional.choose_config.color_component_type_ext.float > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > --- > src/egl/drivers/dri2/egl_dri2.c | 2 ++ > src/egl/main/eglapi.c | 1 + > src/egl/main/eglconfig.c | 9 +++++++++ > src/egl/main/eglconfig.h | 2 ++ > src/egl/main/egldisplay.h | 1 + > 5 files changed, 15 insertions(+) > > diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c > index b486be7487..a511081df8 100644 > --- a/src/egl/drivers/dri2/egl_dri2.c > +++ b/src/egl/drivers/dri2/egl_dri2.c > @@ -695,6 +695,8 @@ dri2_setup_screen(_EGLDisplay *disp) > dri2_renderer_query_integer(dri2_dpy, > __DRI2_RENDERER_HAS_CONTEXT_PRIORITY); > > + disp->Extensions.EXT_pixel_format_float = EGL_TRUE; > + > if (dri2_renderer_query_integer(dri2_dpy, > __DRI2_RENDERER_HAS_FRAMEBUFFER_SRGB)) > disp->Extensions.KHR_gl_colorspace = EGL_TRUE; > diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c > index 76dabba2eb..c1bf5bbfe1 100644 > --- a/src/egl/main/eglapi.c > +++ b/src/egl/main/eglapi.c > @@ -514,6 +514,7 @@ _eglCreateExtensionsString(_EGLDisplay *dpy) > _EGL_CHECK_EXTENSION(KHR_surfaceless_context); > if (dpy->Extensions.EXT_swap_buffers_with_damage) > _eglAppendExtension(&exts, "EGL_KHR_swap_buffers_with_damage"); > + _EGL_CHECK_EXTENSION(EXT_pixel_format_float); > _EGL_CHECK_EXTENSION(KHR_wait_sync); > > if (dpy->Extensions.KHR_no_config_context) > diff --git a/src/egl/main/eglconfig.c b/src/egl/main/eglconfig.c > index f057b0bfe8..2d3b3ddd90 100644 > --- a/src/egl/main/eglconfig.c > +++ b/src/egl/main/eglconfig.c > @@ -68,6 +68,7 @@ _eglInitConfig(_EGLConfig *conf, _EGLDisplay *dpy, EGLint > id) > conf->TransparentType = EGL_NONE; > conf->NativeVisualType = EGL_NONE; > conf->ColorBufferType = EGL_RGB_BUFFER; > + conf->ComponentType = EGL_COLOR_COMPONENT_TYPE_FIXED_EXT; > } > > > @@ -254,6 +255,9 @@ static const struct { > { EGL_RECORDABLE_ANDROID, ATTRIB_TYPE_BOOLEAN, > ATTRIB_CRITERION_EXACT, > EGL_DONT_CARE }, > + { EGL_COLOR_COMPONENT_TYPE_EXT, ATTRIB_TYPE_ENUM, > + ATTRIB_CRITERION_EXACT, > + EGL_COLOR_COMPONENT_TYPE_FIXED_EXT }, > }; > > > @@ -316,6 +320,11 @@ _eglValidateConfig(const _EGLConfig *conf, EGLBoolean > for_matching) > if (val != EGL_RGB_BUFFER && val != EGL_LUMINANCE_BUFFER) > valid = EGL_FALSE; > break; > + case EGL_COLOR_COMPONENT_TYPE_EXT: > + if (val != EGL_COLOR_COMPONENT_TYPE_FIXED_EXT && > + val != EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT) > + valid = EGL_FALSE; > + break; > default: > assert(0); > break; > diff --git a/src/egl/main/eglconfig.h b/src/egl/main/eglconfig.h > index 22da697e83..21f0a28412 100644 > --- a/src/egl/main/eglconfig.h > +++ b/src/egl/main/eglconfig.h > @@ -88,6 +88,7 @@ struct _egl_config > EGLint YInvertedNOK; > EGLint FramebufferTargetAndroid; > EGLint RecordableAndroid; > + EGLint ComponentType; > }; > > > @@ -137,6 +138,7 @@ _eglOffsetOfConfig(EGLint attr) > ATTRIB_MAP(EGL_Y_INVERTED_NOK, YInvertedNOK); > ATTRIB_MAP(EGL_FRAMEBUFFER_TARGET_ANDROID, FramebufferTargetAndroid); > ATTRIB_MAP(EGL_RECORDABLE_ANDROID, RecordableAndroid); > + ATTRIB_MAP(EGL_COLOR_COMPONENT_TYPE_EXT, ComponentType); > #undef ATTRIB_MAP > default: > return -1; > diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h > index 981cbf4ca0..0f57680b21 100644 > --- a/src/egl/main/egldisplay.h > +++ b/src/egl/main/egldisplay.h > @@ -103,6 +103,7 @@ struct _egl_extensions > EGLBoolean EXT_create_context_robustness; > EGLBoolean EXT_image_dma_buf_import; > EGLBoolean EXT_image_dma_buf_import_modifiers; > + EGLBoolean EXT_pixel_format_float; > EGLBoolean EXT_swap_buffers_with_damage; > > unsigned int IMG_context_priority; > -- > 2.13.6 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev