egl: Add EGL_CONFIG_SELECT_GROUP_MESA ext.
authorHal Gentz <zegentzy@protonmail.com>
Fri, 11 Oct 2019 00:35:50 +0000 (18:35 -0600)
committerAdam Jackson <ajax@nwnk.net>
Fri, 11 Oct 2019 21:57:20 +0000 (21:57 +0000)
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 <ajax@redhat.com>
Signed-off-by: Hal Gentz <zegentzy@protonmail.com>
docs/specs/EGL_MESA_config_select_group.spec [new file with mode: 0644]
include/EGL/eglmesaext.h

diff --git a/docs/specs/EGL_MESA_config_select_group.spec b/docs/specs/EGL_MESA_config_select_group.spec
new file mode 100644 (file)
index 0000000..e71411f
--- /dev/null
@@ -0,0 +1,103 @@
+Name
+
+    EGL_MESA_config_select_group
+
+Name Strings
+
+    EGL_MESA_config_select_group
+
+Contributors
+
+    Hal Gentz <zegentzy@protonmail.com>
+
+Contacts
+
+    Hal Gentz <zegentzy@protonmail.com>
+
+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 <attrib_list> parameter of
+    eglChooseConfig, but it is accepted as the <attribute> 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
index f4332b279f879197d914b72749b3561326c3888d..b83e9441012b48724309f91d192b13b91981f5c1 100644 (file)
@@ -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