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.

Open
#7,622 2 comments 0 reactions 1 assignee View on GitHub

@bob80905 is already working on this.

Since Oct 22, 2025.

bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.