Ensure that "detect 3D" is only called when using 3D shaders #78199
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: #62087
In the RD backend
p_use_linear_color
wasn't being properly sent toupdate_textures
leading it to treat every shader as a 3D shader. This caused two problems:shader_type canvas_item;
#62087), andsource_color
the texture was converted to srgb twice, leading to it looking badIn the GLES3 backend we didn't even track if a material was 3D or not, so the plumbing had to be added.
Tagging for 4.1, but not 4.0 as this will introduce a slight behaviour change that users may already be working around.