Prevent changing some built-ins in spatial shaders #93269
Merged
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.
CUSTOMX
are meaningless to be used as output because in shader it's defined like:layout(location = 6) in vec4 custom0_attrib;
And canvas_item shader already has the same built-in, and it's defined as
constt
.Also,
BONE_WEIGHT
andBONE_INDICES
are affected by the same problem.NODE_POSITION_WORLD
corresponds toMODEL_MATRIX
which changing is forbidden at previous lines.CAMERA_POSITION_WORLD
corresponds toINV_VIEW_MATRIX
which changing is forbidden at previous lines.CAMERA_DIRECTION_WORLD
corresponds toVIEW_MATRIX
which changing is forbidden at previous lines.CAMERA_VISIBLE_LAYERS
IDK about this one, but logically it should not be changed in shader.NODE_POSITION_VIEW
translated to(scene_data.view_matrix * model_matrix)[3].xyz
and assigned to this one lead to shader crash.