NormalMapNode
: Fix dpdx
and dpdy
called from non-uniform control flow
#24062
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.
Related issue: #24059 (comment)
Description
I believe that this conditional was inserted to optimize the shader, although conditionals are always expensive for GPU.
Code without conditionals is understood as
uniform control flow
and with conditionalnon-uniform control flow
.Ref: https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.50.pdf -
page 23
This fix
WebGPU
warning: 'dpdy' must only be called from uniform control flow
and follow the approach closer of http://www.thetenthplanet.de/archives/1180I wounder if this is not responsible for bugs in
WebGL
usingperturbNormal2Arb
too!?...This contribution is funded by Google via Igalia