microsoft / microsoft/DirectXShaderCompiler
SM 6.2 Raw Buffer Load of vectors of length 3 and 4 of 64 bit types only checks Status of 2nd Load.
@bob80905 is already working on this.
Since Oct 22, 2025.
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
Description
In SM6.2 and below RawBuffer Loads of doubles and int64s are converted to loads of i32s. For vectors of length 3 and 4, the Load is turned into two loads. If the status of the original load is checked, in the vec3 and vec4 cases, DXC only generates a check of the second loads CheckBit.
I think the correct behavior is for DXC to check the status of both loads and 'and' the results together.
Steps to Reproduce
https://hlsl.godbolt.org/z/xjo9rr6GK
Actual Behavior
DXC only checks the status of the 2nd load, but I believe it should check the result of both loads.
Environment
- DXC version 1.8.2502
- Host Operating System N/A
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.