microsoft / microsoft/DirectXShaderCompiler

[SPIR-V] Subgroup ops type limitation not honored by DXC

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

@s-perron is already working on this.

Since Jan 19, 2026.

bug needs-triage spirv
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

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.