Fix position from vertex shader partially uninitialized #94629
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.
A vertex shader in Godot can write to a subset of the fileds of
POSITION
, which would lead to thevec4 position
being partially unitialized. The DirectX Shader Compiler will reject that. This PR initializes the variable to the most sensible value so the user can re-override whatever members they want. Shader optimization is expected to remove the redundant assignments.A different fix may be put in place: that the Godot shader compiler rejects the shader unless it writes to the whole vector. This PR shouldn't be an obstacle to doing that later anyway.