| Name |
| |
| EXT_gl_colorspace_display_p3 |
| |
| Name Strings |
| |
| EGL_EXT_gl_colorspace_display_p3_linear |
| EGL_EXT_gl_colorspace_display_p3 |
| |
| Contributors |
| |
| Courtney Goeltzenleuchter |
| Jesse Hall |
| |
| Contact |
| |
| Courtney Goeltzenleuchter (courtneygo 'at' google.com) |
| |
| IP Status |
| |
| No known IP claims. |
| |
| Status |
| |
| Draft |
| |
| Version |
| |
| Version 2 - Oct 4, 2018 |
| |
| Number |
| |
| EGL Extension #118 |
| |
| Extension Type |
| |
| EGL display extension |
| |
| Dependencies |
| |
| These extensions are written against the wording of the EGL 1.5 |
| specification (August 27, 2014). |
| |
| These extensions require EGL_KHR_gl_colorspace. |
| |
| Overview |
| |
| Applications that want to use the Display-P3 color space (DCI-P3 primaries |
| and linear or sRGB-like transfer function) can use this extension to |
| communicate to the platform that framebuffer contents represent colors in |
| the Display-P3 color space. |
| The application is responsible for producing appropriate framebuffer |
| contents, but will typically use built-in sRGB encoding in OpenGL and OpenGL |
| ES to accomplish this. |
| |
| New Procedures and Functions |
| |
| None. |
| |
| New Tokens |
| |
| Accepted as attribute values for EGL_GL_COLORSPACE by |
| eglCreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface: |
| |
| [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]] |
| |
| EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362 |
| |
| [[ If EGL_EXT_gl_colorspace_display_p3 is supported ]] |
| |
| EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363 |
| |
| Modifications to the EGL 1.5 Specification |
| |
| Insert below text in the 3rd paragraph on page 33 in 3.5.1 "Creating On- |
| Screen Rendering Surfaces, before "The default value of EGL_GL_COLORSPACE |
| is EGL_GL_COLORSPACE_LINEAR.": |
| |
| [[ If EGL_EXT_gl_colorspace_display_p3_linear is supported ]] |
| |
| If its value is EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT, then a linear |
| Display-P3 color space is assumed, with a corresponding |
| GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING value of GL_LINEAR. |
| |
| [[ If EGL_EXT_gl_colorspace_display_p3 is supported ]] |
| |
| If its value is EGL_GL_COLORSPACE_DISPLAY_P3_EXT, then a non-linear, sRGB |
| encoded Display-P3 color space is assumed, with a corresponding GL_FRAME- |
| BUFFER_ATTACHMENT_COLOR_ENCODING value of GL_SRGB. |
| Only OpenGL and OpenGL ES contexts which support sRGB rendering must |
| respect requests for EGL_GL_COLORSPACE_SRGB_KHR, and only to sRGB |
| formats supported by the context (normally just SRGB8). |
| |
| Modify the 4th paragraph on the same page: |
| |
| Note that the EGL_GL_COLORSPACE_SRGB attribute is used only by OpenGL and |
| OpenGL ES contexts supporting sRGB framebuffers. EGL itself does not |
| distinguish multiple colorspace models. Refer to the "sRGB Conversion" |
| sections of the OpenGL 4.4 and OpenGL ES 3.0 specifications for more |
| information. |
| |
| Errors |
| |
| Modify below error in the "Errors" section on page 34: |
| |
| "If config does not support the OpenVG colorspace or alpha format at- |
| tributes specified in attrib list (as defined for eglCreatePlatformWindow- |
| Surface), an EGL_BAD_MATCH error is generated." |
| |
| To include OpenGL colorspace as well: |
| |
| "If config does not support the OpenGL colorspace, the OpenVG colorspace or |
| alpha format attributes specified in attrib list (as defined for eglCreate- |
| PlatformWindowSurface), an EGL_BAD_MATCH error is generated." |
| |
| Issues |
| |
| 1. Removed section talking about HDR features, e.g. luminance > 80nits. |
| Do we want to keep that here in anticipation of HDR support in the future? |
| |
| 2. When creating an EGL surface, what happens when the specified colorspace |
| is not compatible with or supported by the EGLConfig? |
| |
| RESOLVED: There is currently no way to query the compatibility of a |
| EGLConfig and colorspace pair. So the only option is to define an error |
| case similar to that of OpenVG colorspace, i.e. if config does not |
| support the colorspace specified in attrib list (as defined for egl- |
| CreateWindowSurface, eglCreatePbufferSurface and eglCreatePixmapSurface), |
| an EGL_BAD_MATCH error is generated. |
| |
| Revision History |
| |
| Version 1, 2017/03/22 |
| - Internal revisions |
| |
| Version 2, 2018/10/04 |
| - Fix typo to correct extension reference |