mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-02-18 01:43:27 +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
|
### 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)
|
## v0.20.0 (2024-04-28)
|
||||||
|
|
||||||
### Major Changes
|
### Major Changes
|
||||||
|
@ -1130,6 +1130,13 @@ impl Surface {
|
|||||||
|
|
||||||
unsafe { gl.bind_framebuffer(glow::DRAW_FRAMEBUFFER, None) };
|
unsafe { gl.bind_framebuffer(glow::DRAW_FRAMEBUFFER, None) };
|
||||||
unsafe { gl.bind_framebuffer(glow::READ_FRAMEBUFFER, Some(sc.framebuffer)) };
|
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,
|
// Note the Y-flipping here. GL's presentation is not flipped,
|
||||||
// but main rendering is. Therefore, we Y-flip the output positions
|
// but main rendering is. Therefore, we Y-flip the output positions
|
||||||
// in the shader, and also this blit.
|
// in the shader, and also this blit.
|
||||||
@ -1147,6 +1154,11 @@ impl Surface {
|
|||||||
glow::NEAREST,
|
glow::NEAREST,
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if !matches!(self.srgb_kind, SrgbFrameBufferKind::None) {
|
||||||
|
unsafe { gl.enable(glow::FRAMEBUFFER_SRGB) };
|
||||||
|
}
|
||||||
|
|
||||||
unsafe { gl.bind_framebuffer(glow::READ_FRAMEBUFFER, None) };
|
unsafe { gl.bind_framebuffer(glow::READ_FRAMEBUFFER, None) };
|
||||||
|
|
||||||
self.egl
|
self.egl
|
||||||
|
Loading…
Reference in New Issue
Block a user