diff options
| author | Lujin Wang <143145775+lujinwangnv@users.noreply.github.com> | 2025-10-08 16:18:50 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-08 23:18:50 +0000 |
| commit | 4e4aad5a0493defde1e0ef29f27e5d663c1182cd (patch) | |
| tree | 8d5a5bbe78d297ce31cfce7c0b18d2ca91b417c2 /source | |
| parent | 1e4265edd4ec4c44e3d8f209fca802727076aa46 (diff) | |
Fix DerivativeGroupQuadsKHR workgroup size validation for texture sampling (#8647)
Fixes #8545 where Slang generates SPIR-V with DerivativeGroupQuadsKHR
execution mode but doesn't validate workgroup sizes when texture
sampling triggers automatic derivative computation.
**Root Cause**: Validation code was looking for IRNumThreadsDecoration
on the wrong IR node
**Fix**: One-line change in slang-emit-spirv.cpp to search decoration on
entryPoint instead of entryPointDecor
**Tests**: Added regression tests for both quad and linear derivative
group validation
Generated with [Claude Code](https://claude.ai/code)
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Lujin Wang <lujinwangnv@users.noreply.github.com>
Co-authored-by: slangbot <ellieh+slangbot@nvidia.com>
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-emit-spirv.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp index 36368c3ee..73a83f9c0 100644 --- a/source/slang/slang-emit-spirv.cpp +++ b/source/slang/slang-emit-spirv.cpp @@ -4285,8 +4285,7 @@ struct SPIRVEmitContext : public SourceEmitterBase, public SPIRVEmitSharedContex ensureExtensionDeclaration( UnownedStringSlice("SPV_KHR_compute_shader_derivatives")); - auto numThreadsDecor = - entryPointDecor->findDecoration<IRNumThreadsDecoration>(); + auto numThreadsDecor = entryPoint->findDecoration<IRNumThreadsDecoration>(); if (isQuad) { verifyComputeDerivativeGroupModifiers( |
