MSL: Apply input override on all flattened members in interface block #2450
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.
As in #2305, the current logic cannot properly apply input override on composite types. This change fixes the common case where the composite types are flattened into the interface block. The typing override is decoupled from location calculation so that it can be applied to all members. In the meantime, some common logics are consolidated.
Testing
dEQP-VK.pipeline.monolithic.interface_matching.*
on MoltenVK's VK_KHR_maintenance4 branchBefore the change:
After the change:
This fix eliminates all MSL compilation errors within the above CTS tests. The cases that are still failing are all related to tessellation shaders, which don't flatten composite types in interface blocks and require an independent fix.