When a EGL pbuffer is created based on a D3D SRGB texture using EGL_ANGLE_d3d_texture_client_buffer, SRGB conversions are performed as if it was an SRGB surface. The value of EGL_GL_COLORSPACE now reflects that correctly. If the pbuffer is bound to a texture and used as a framebuffer attachment, querying GL_FRAMEBUFFER_COLOR_ATTACHMENT also reflects that correctly. The behavior is the same on both the D3D backend, where there is no native interop involved, and on the GL backend using WGL_NV_DX_interop(2). There are a few limitations on the GL backend that relies on native interop: 1. SRGB conversion for textures created this way can't be disabled using the GL_FRAMEBUFFER_SRGB_EXT toggle that's exposed in ANGLE through EXT_sRGB_write_control. This is now documented in the EGL_ANGLE_d3d_texture_client_buffer spec. On the D3D backend this is not a problem since EXT_sRGB_write_control is not supported either way. 2. Creating a pbuffer out of a D3D11 texture with the format DXGI_FORMAT_B8G8R8A8_UNORM_SRGB does not work, even though it was listed as one of the supported formats in the EGL_ANGLE_d3d_texture_client_buffer spec. It's now mentioned that support for this format is optional. BUG=angleproject:2300 TEST=angle_white_box_tests Change-Id: I70ee0646680805e4469291a5b2ce59e92fda009e Reviewed-on: https://chromium-review.googlesource.com/866743Reviewed-by:Geoff Lang <geofflang@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| cgl | Loading commit data... | |
| egl | Loading commit data... | |
| glx | Loading commit data... | |
| wgl | Loading commit data... | |
| BlitGL.cpp | Loading commit data... | |
| BlitGL.h | Loading commit data... | |
| BufferGL.cpp | Loading commit data... | |
| BufferGL.h | Loading commit data... | |
| ClearMultiviewGL.cpp | Loading commit data... | |
| ClearMultiviewGL.h | Loading commit data... | |
| CompilerGL.cpp | Loading commit data... | |
| CompilerGL.h | Loading commit data... | |
| ContextGL.cpp | Loading commit data... | |
| ContextGL.h | Loading commit data... | |
| DispatchTableGL_autogen.cpp | Loading commit data... | |
| DispatchTableGL_autogen.h | Loading commit data... | |
| DisplayGL.cpp | Loading commit data... | |
| DisplayGL.h | Loading commit data... | |
| FeatureSupportGL.md | Loading commit data... | |
| FenceNVGL.cpp | Loading commit data... | |
| FenceNVGL.h | Loading commit data... | |
| FramebufferGL.cpp | Loading commit data... | |
| FramebufferGL.h | Loading commit data... | |
| FunctionsGL.cpp | Loading commit data... | |
| FunctionsGL.h | Loading commit data... | |
| PathGL.cpp | Loading commit data... | |
| PathGL.h | Loading commit data... | |
| ProgramGL.cpp | Loading commit data... | |
| ProgramGL.h | Loading commit data... | |
| ProgramPipelineGL.cpp | Loading commit data... | |
| ProgramPipelineGL.h | Loading commit data... | |
| QueryGL.cpp | Loading commit data... | |
| QueryGL.h | Loading commit data... | |
| RenderbufferGL.cpp | Loading commit data... | |
| RenderbufferGL.h | Loading commit data... | |
| RendererGL.cpp | Loading commit data... | |
| RendererGL.h | Loading commit data... | |
| SamplerGL.cpp | Loading commit data... | |
| SamplerGL.h | Loading commit data... | |
| ShaderGL.cpp | Loading commit data... | |
| ShaderGL.h | Loading commit data... | |
| StateManagerGL.cpp | Loading commit data... | |
| StateManagerGL.h | Loading commit data... | |
| SurfaceGL.cpp | Loading commit data... | |
| SurfaceGL.h | Loading commit data... | |
| SyncGL.cpp | Loading commit data... | |
| SyncGL.h | Loading commit data... | |
| TextureGL.cpp | Loading commit data... | |
| TextureGL.h | Loading commit data... | |
| TransformFeedbackGL.cpp | Loading commit data... | |
| TransformFeedbackGL.h | Loading commit data... | |
| VertexArrayGL.cpp | Loading commit data... | |
| VertexArrayGL.h | Loading commit data... | |
| WorkaroundsGL.h | Loading commit data... | |
| formatutilsgl.cpp | Loading commit data... | |
| formatutilsgl.h | Loading commit data... | |
| functionsgl_enums.h | Loading commit data... | |
| functionsgl_typedefs.h | Loading commit data... | |
| generate_gl_dispatch_table.py | Loading commit data... | |
| gl_bindings_data.json | Loading commit data... | |
| null_functions.cpp | Loading commit data... | |
| null_functions.h | Loading commit data... | |
| renderergl_utils.cpp | Loading commit data... | |
| renderergl_utils.h | Loading commit data... |