Use non-srgb main texture to support storage. Fix ClearColor in srgb compositing#23803
Use non-srgb main texture to support storage. Fix ClearColor in srgb compositing#23803beicause wants to merge 1 commit intobevyengine:mainfrom
ClearColor in srgb compositing#23803Conversation
|
Your PR caused a change in the graphical output of an example or rendering test. This might be intentional, but it could also mean that something broke! If it's expected, please add the M-Deliberate-Rendering-Change label. If this change seems unrelated to your PR, you can consider updating your PR to target the latest main branch, either by rebasing or merging main into it. |
| #[default] | ||
| Srgb, | ||
| /// Linear light blending. Physically correct. Requires [`Hdr`]. | ||
| /// Linear light blending. Physically correct. |
There was a problem hiding this comment.
Thanks, this also irked me.
|
adreno gpu best practice says arm says it too: |
Objective
Our main texture is srgb format, which doesn't support storage usage (in
CameraMainTextureUsages) on some devices and WebGPU.Also the
ClearColoris incorrectly converted to linear color when usingCompositingSpace::SrgbSolution
Always use non-srgb main texture (srgb view is not needed).
As intermediate texture, whether it is srgb or not doesn’t matter and makes no difference during rendering and sampling, unless you copy it to a buffer or retrieve the data. But I believe nowhere does that. The screenshot plugin copies render target instead of main texture.
Testing
Run the code from #9213 (comment)
Details
Before, it's wrong with

CompositingSpace::Srgb:After:
