From 173bc9d6842efdec54ea3fd415a6946dcee7b02a Mon Sep 17 00:00:00 2001 From: Hal Gentz Date: Thu, 10 Oct 2019 18:35:50 -0600 Subject: [PATCH] egl: Add EGL_CONFIG_SELECT_GROUP_MESA ext. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67676 Fixes: 049f343e8ac "egl: Allow 24-bit visuals for 32-bit RGBA8888 configs" Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Adam Jackson Signed-off-by: Hal Gentz --- docs/specs/EGL_MESA_config_select_group.spec | 103 +++++++++++++++++++ include/EGL/eglmesaext.h | 5 + 2 files changed, 108 insertions(+) create mode 100644 docs/specs/EGL_MESA_config_select_group.spec diff --git a/docs/specs/EGL_MESA_config_select_group.spec b/docs/specs/EGL_MESA_config_select_group.spec new file mode 100644 index 00000000000..e71411fe23f --- /dev/null +++ b/docs/specs/EGL_MESA_config_select_group.spec @@ -0,0 +1,103 @@ +Name + + EGL_MESA_config_select_group + +Name Strings + + EGL_MESA_config_select_group + +Contributors + + Hal Gentz + +Contacts + + Hal Gentz + +Status + + Draft + +Version + + Version 1, 2019-30-04 + +Number + + EGL Extension #XXX + +Extension Type + + EGL client extension + +Dependencies + + This extension is written against the wording of the 2014.08.27 revision + of the EGL 1.5 Specification. + +Overview + + This extension provides a mechanism to lower the config selection priority + of the configs returned by eglChooseConfig. A new config attribute is + introduced, providing a way for the implementation to group configs into + different config selection categories. The config selection priorities of + all the configs in one category may be higher or lower than the ones in + other categories. The config selection priorities in one category follow + the rules of eglChooseConfig. + +New Types + + None + +New Procedures and Functions + + None + +New Tokens + + Accepted as a new EGLConfig attribute: + + EGL_CONFIG_SELECT_GROUP_MESA 0x31DC + +Additions to the EGL 1.5 Specification + + In section 3.4 "Configuration Management", under the "Buffer Descriptions + and Attributes" heading, append to table 3.1 the following: + + "EGL_CONFIG_SELECT_GROUP_MESA | integer | the config select group" + + In section 3.4 "Configuration Management", under the "Other EGLConfig + Attribute Descriptions" heading, append to the end the following: + + "The attribute EGL_CONFIG_SELECT_GROUP_MESA is used to specify the config + selection category of the config. Configs in the i-th category have a higher + config selection priority than those found in the (i+1)-th category. + + "The attribute EGL_CONFIG_SELECT_GROUP_MESA is used by the implementation to + override the default sorting rules, by collecting configurations into + groups. It is not accepted by the parameter of + eglChooseConfig, but it is accepted as the in + eglGetConfigAtrrib." + + In section 3.4 "Configuration Management", under the "Sorting of EGLConfigs" + heading, append to table 3.4 the following: + + "EGL_CONFIG_SELECT_GROUP_MESA | 0 | Ignore | Smaller | 0" + + In section 3.4 "Configuration Management", under the "Sorting of EGLConfigs" + heading, append before the list entry which starts with "1. Special: by + EGL_CONFIG_CAVEAT" the following entry: + + "0. Smaller EGL_CONFIG_SELECT_GROUP_MESA." + +Issues + + None + +Revision History + + Version 2, 2019-07-11 (Hal Gentz) + - Resolved issues pointed out by Adam Jackson. + + Version 1, 2019-06-21 (Hal Gentz) + - Initial draft diff --git a/include/EGL/eglmesaext.h b/include/EGL/eglmesaext.h index f4332b279f8..b83e9441012 100644 --- a/include/EGL/eglmesaext.h +++ b/include/EGL/eglmesaext.h @@ -86,6 +86,11 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOK) (EGLDisplay dpy, EG #define EGL_DRM_BUFFER_FORMAT_RGB565_MESA 0x3292 #endif /* EGL_MESA_drm_image_formats */ +#ifndef EGL_MESA_config_select_group +#define EGL_MESA_config_select_group 1 +#define EGL_CONFIG_SELECT_GROUP_MESA 0x31DC +#endif + #ifdef __cplusplus } #endif -- 2.30.2