microsoft / microsoft/DirectXShaderCompiler
[SPIR-V] Subgroup ops type limitation not honored by DXC
@s-perron is already working on this.
Since Jan 19, 2026.
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
Description
It seems that various SPIR-V subgroup operations have limitation that "Result Type must be a scalar or vector of floating-point type, integer type, or Boolean type." whereas HLSL does not place any restrictions on the types involved.
SPIR-V spec: https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#OpGroupNonUniformBroadcastFirst
HLSL spec: https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/wavereadfirstlane
I see 9 instances of such subgroup ops which have the same limitation on the SPIR-V side in the spec above.
Steps to Reproduce
https://shader-playground.timjones.io/8dd14e21d5f401da942bb51a240638b1
Actual Behavior
Generated SPIR-V code from the link above fails to be compiled (see: https://shader-playground.timjones.io/8d1b712030acacbbb1f1cf4282b9a1dc)
ERROR: 'subgroupBroadcastFirst' : no matching overloaded function found
ERROR: cannot convert from ' const float' to ' temp highp 3X3 matrix of float'
Environment
- DXC version: 1.7 - 1.7.0.3939 (5e080a772)
- Host Operating System: Windows 10 Pro
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.