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 |
|---|---|---|
| .. | ||
| renderer | Loading commit data... | |
| AttributeMap.cpp | Loading commit data... | |
| AttributeMap.h | Loading commit data... | |
| BinaryStream.h | Loading commit data... | |
| BinaryStream_unittest.cpp | Loading commit data... | |
| Buffer.cpp | Loading commit data... | |
| Buffer.h | Loading commit data... | |
| Caps.cpp | Loading commit data... | |
| Caps.h | Loading commit data... | |
| Compiler.cpp | Loading commit data... | |
| Compiler.h | Loading commit data... | |
| Config.cpp | Loading commit data... | |
| Config.h | Loading commit data... | |
| Config_unittest.cpp | Loading commit data... | |
| Constants.h | Loading commit data... | |
| Context.cpp | Loading commit data... | |
| Context.h | Loading commit data... | |
| ContextState.cpp | Loading commit data... | |
| ContextState.h | Loading commit data... | |
| Debug.cpp | Loading commit data... | |
| Debug.h | Loading commit data... | |
| Device.cpp | Loading commit data... | |
| Device.h | Loading commit data... | |
| Display.cpp | Loading commit data... | |
| Display.h | Loading commit data... | |
| Error.cpp | Loading commit data... | |
| Error.h | Loading commit data... | |
| Error.inl | Loading commit data... | |
| ErrorStrings.h | Loading commit data... | |
| Fence.cpp | Loading commit data... | |
| Fence.h | Loading commit data... | |
| Fence_unittest.cpp | Loading commit data... | |
| Framebuffer.cpp | Loading commit data... | |
| Framebuffer.h | Loading commit data... | |
| FramebufferAttachment.cpp | Loading commit data... | |
| FramebufferAttachment.h | Loading commit data... | |
| HandleAllocator.cpp | Loading commit data... | |
| HandleAllocator.h | Loading commit data... | |
| HandleAllocator_unittest.cpp | Loading commit data... | |
| HandleRangeAllocator.cpp | Loading commit data... | |
| HandleRangeAllocator.h | Loading commit data... | |
| HandleRangeAllocator_unittest.cpp | Loading commit data... | |
| Image.cpp | Loading commit data... | |
| Image.h | Loading commit data... | |
| ImageIndex.cpp | Loading commit data... | |
| ImageIndex.h | Loading commit data... | |
| ImageIndexIterator_unittest.cpp | Loading commit data... | |
| Image_unittest.cpp | Loading commit data... | |
| IndexRangeCache.cpp | Loading commit data... | |
| IndexRangeCache.h | Loading commit data... | |
| LoggingAnnotator.cpp | Loading commit data... | |
| LoggingAnnotator.h | Loading commit data... | |
| MemoryProgramCache.cpp | Loading commit data... | |
| MemoryProgramCache.h | Loading commit data... | |
| PackedGLEnums.h | Loading commit data... | |
| PackedGLEnums_autogen.cpp | Loading commit data... | |
| PackedGLEnums_autogen.h | Loading commit data... | |
| Path.cpp | Loading commit data... | |
| Path.h | Loading commit data... | |
| Platform.cpp | Loading commit data... | |
| Program.cpp | Loading commit data... | |
| Program.h | Loading commit data... | |
| ProgramLinkedResources.cpp | Loading commit data... | |
| ProgramLinkedResources.h | Loading commit data... | |
| ProgramPipeline.cpp | Loading commit data... | |
| ProgramPipeline.h | Loading commit data... | |
| Program_unittest.cpp | Loading commit data... | |
| Query.cpp | Loading commit data... | |
| Query.h | Loading commit data... | |
| RefCountObject.h | Loading commit data... | |
| Renderbuffer.cpp | Loading commit data... | |
| Renderbuffer.h | Loading commit data... | |
| ResourceManager.cpp | Loading commit data... | |
| ResourceManager.h | Loading commit data... | |
| ResourceManager_unittest.cpp | Loading commit data... | |
| ResourceMap.h | Loading commit data... | |
| Sampler.cpp | Loading commit data... | |
| Sampler.h | Loading commit data... | |
| Shader.cpp | Loading commit data... | |
| Shader.h | Loading commit data... | |
| SizedMRUCache.h | Loading commit data... | |
| SizedMRUCache_unittest.cpp | Loading commit data... | |
| State.cpp | Loading commit data... | |
| State.h | Loading commit data... | |
| Stream.cpp | Loading commit data... | |
| Stream.h | Loading commit data... | |
| Surface.cpp | Loading commit data... | |
| Surface.h | Loading commit data... | |
| Surface_unittest.cpp | Loading commit data... | |
| Texture.cpp | Loading commit data... | |
| Texture.h | Loading commit data... | |
| Thread.cpp | Loading commit data... | |
| Thread.h | Loading commit data... | |
| TransformFeedback.cpp | Loading commit data... | |
| TransformFeedback.h | Loading commit data... | |
| TransformFeedback_unittest.cpp | Loading commit data... | |
| Uniform.cpp | Loading commit data... | |
| Uniform.h | Loading commit data... | |
| VaryingPacking.cpp | Loading commit data... | |
| VaryingPacking.h | Loading commit data... | |
| VaryingPacking_unittest.cpp | Loading commit data... | |
| Version.h | Loading commit data... | |
| Version.inl | Loading commit data... | |
| VertexArray.cpp | Loading commit data... | |
| VertexArray.h | Loading commit data... | |
| VertexArray_unittest.cpp | Loading commit data... | |
| VertexAttribute.cpp | Loading commit data... | |
| VertexAttribute.h | Loading commit data... | |
| VertexAttribute.inl | Loading commit data... | |
| Workarounds.h | Loading commit data... | |
| WorkerThread.cpp | Loading commit data... | |
| WorkerThread.h | Loading commit data... | |
| WorkerThread_unittest.cpp | Loading commit data... | |
| angletypes.cpp | Loading commit data... | |
| angletypes.h | Loading commit data... | |
| angletypes.inl | Loading commit data... | |
| entry_points_enum_autogen.h | Loading commit data... | |
| es3_copy_conversion_formats.json | Loading commit data... | |
| es3_copy_conversion_table_autogen.cpp | Loading commit data... | |
| es3_format_type_combinations.json | Loading commit data... | |
| features.h | Loading commit data... | |
| format_map_autogen.cpp | Loading commit data... | |
| format_map_data.json | Loading commit data... | |
| formatutils.cpp | Loading commit data... | |
| formatutils.h | Loading commit data... | |
| gen_copy_conversion_table.py | Loading commit data... | |
| gen_format_map.py | Loading commit data... | |
| gen_packed_gl_enums.py | Loading commit data... | |
| histogram_macros.h | Loading commit data... | |
| packed_gl_enums.json | Loading commit data... | |
| params.cpp | Loading commit data... | |
| params.h | Loading commit data... | |
| queryconversions.cpp | Loading commit data... | |
| queryconversions.h | Loading commit data... | |
| queryutils.cpp | Loading commit data... | |
| queryutils.h | Loading commit data... | |
| signal_utils.h | Loading commit data... | |
| signal_utils_unittest.cpp | Loading commit data... | |
| validationEGL.cpp | Loading commit data... | |
| validationEGL.h | Loading commit data... | |
| validationES.cpp | Loading commit data... | |
| validationES.h | Loading commit data... | |
| validationES2.cpp | Loading commit data... | |
| validationES2.h | Loading commit data... | |
| validationES3.cpp | Loading commit data... | |
| validationES3.h | Loading commit data... | |
| validationES31.cpp | Loading commit data... | |
| validationES31.h | Loading commit data... | |
| validationES_unittest.cpp | Loading commit data... |