mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 08:50:13 +01:00
egl: EXT_pixel_format_float plumbing
Patch adds support and capability to match with new surface attribute, component type. Currently no configs with floating point type are exposed. 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.palli@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
934b77f2fe
commit
41f7de477c
5 changed files with 15 additions and 0 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue