diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index 215bdc819..b1f924dc6 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -1487,7 +1487,10 @@ BX_PRAGMA_DIAGNOSTIC_POP(); D3D11_RENDER_TARGET_VIEW_DESC desc; desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; desc.Texture2D.MipSlice = 0; - desc.Format = (m_flags & BGFX_RESET_SRGB_BACKBUFFER) ? DXGI_FORMAT_R8G8B8A8_UNORM_SRGB : DXGI_FORMAT_R8G8B8A8_UNORM; + desc.Format = (m_flags & BGFX_RESET_SRGB_BACKBUFFER) + ? DXGI_FORMAT_R8G8B8A8_UNORM_SRGB + : DXGI_FORMAT_R8G8B8A8_UNORM + ; DX_CHECK(m_device->CreateRenderTargetView(color, &desc, &m_backBufferColor) ); DX_RELEASE(color, 0); diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index d13f52ca6..08b577773 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -531,6 +531,14 @@ namespace bgfx { namespace d3d9 , s_textureFormat[ii].m_fmt ) ) ? BGFX_CAPS_FORMAT_TEXTURE_COLOR : BGFX_CAPS_FORMAT_TEXTURE_NONE; + support |= SUCCEEDED(m_d3d9->CheckDeviceFormat(m_adapter + , m_deviceType + , adapterFormat + , D3DUSAGE_QUERY_SRGBREAD + , D3DRTYPE_TEXTURE + , s_textureFormat[ii].m_fmt + ) ) ? BGFX_CAPS_FORMAT_TEXTURE_COLOR_SRGB : BGFX_CAPS_FORMAT_TEXTURE_NONE; + support |= SUCCEEDED(m_d3d9->CheckDeviceFormat(m_adapter , m_deviceType , adapterFormat diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index 24e9015be..41560c6dd 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -3567,10 +3567,14 @@ namespace bgfx { namespace gl } const bool computeWrite = 0 != (m_flags&BGFX_TEXTURE_COMPUTE_WRITE); + const bool srgb = 0 != (m_flags&BGFX_TEXTURE_SRGB); target = GL_TEXTURE_CUBE_MAP == m_target ? GL_TEXTURE_CUBE_MAP_POSITIVE_X : m_target; - const GLenum internalFmt = s_textureFormat[m_textureFormat].m_internalFmt; + const GLenum internalFmt = srgb + ? s_textureFormat[m_textureFormat].m_internalFmtSrgb + : s_textureFormat[m_textureFormat].m_internalFmt + ; const bool swizzle = true && TextureFormat::BGRA8 == m_requestedFormat