MSL: Handle OpPtrAccessChain with ArrayStride #2346
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.
Case here is pointer to float3 with array stride of 12. Plain dereference will not work. To be more general, we can do pointer arith instead. For alignment, we have to cast the result to a packed_float3. All of this is rather awkward, but there aren't many great alternatives.
We're missing handling of Aligned mask for Load/Store, where we might have to cast a pointer to scalar types at last minute, which would make this reinterpret_cast chain even more ridiculous.
Fixes #2336.