mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-21 22:33:49 +00:00
Fix OpenGL non-srgb on Linux (#5642)
This commit is contained in:
parent
4a07ab2b57
commit
565a0310e9
@ -72,6 +72,10 @@ By @stefnotch in [#5410](https://github.com/gfx-rs/wgpu/pull/5410)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
#### GLES / OpenGL
|
||||
|
||||
- Fix regression on OpenGL (EGL) where non-sRGB still used sRGB [#5642](https://github.com/gfx-rs/wgpu/pull/5642)
|
||||
|
||||
## v0.20.0 (2024-04-28)
|
||||
|
||||
### Major Changes
|
||||
|
@ -1130,6 +1130,13 @@ impl Surface {
|
||||
|
||||
unsafe { gl.bind_framebuffer(glow::DRAW_FRAMEBUFFER, None) };
|
||||
unsafe { gl.bind_framebuffer(glow::READ_FRAMEBUFFER, Some(sc.framebuffer)) };
|
||||
|
||||
if !matches!(self.srgb_kind, SrgbFrameBufferKind::None) {
|
||||
// Disable sRGB conversions for `glBlitFramebuffer` as behavior does diverge between
|
||||
// drivers and formats otherwise and we want to ensure no sRGB conversions happen.
|
||||
unsafe { gl.disable(glow::FRAMEBUFFER_SRGB) };
|
||||
}
|
||||
|
||||
// Note the Y-flipping here. GL's presentation is not flipped,
|
||||
// but main rendering is. Therefore, we Y-flip the output positions
|
||||
// in the shader, and also this blit.
|
||||
@ -1147,6 +1154,11 @@ impl Surface {
|
||||
glow::NEAREST,
|
||||
)
|
||||
};
|
||||
|
||||
if !matches!(self.srgb_kind, SrgbFrameBufferKind::None) {
|
||||
unsafe { gl.enable(glow::FRAMEBUFFER_SRGB) };
|
||||
}
|
||||
|
||||
unsafe { gl.bind_framebuffer(glow::READ_FRAMEBUFFER, None) };
|
||||
|
||||
self.egl
|
||||
|
Loading…
Reference in New Issue
Block a user