2026-07-16 - HLSL Working Group Minutes
Discussion Topics
- This week in HLSL
- Linkage in SPIR-V (llvm/llvm-project#209672)
Meeting Notes
This Week in HLSL
This was a slower week in HLSL, but we did see 27 PRs merged:
- HLSL Frontend
- Diagnostic improvements for for entry functions and resource parameters
- RWTexture2D was implemented and the tests for textures were cleaned up
- DirectX Backend
- Some container related flags for debug and PDB handling were implemented
- SPIR-V Backend
- Multiple improvements to lowering and legalization.
- Various refactorings
- Offload Test Suite
- Various XFAILs were updated per implementation effort elsewhere
- Infrastructure to run CI using lavapipe and WARP was improved
There are 61 ongoing PRs and 23 new PRs.
For a full list of merged PRs, see the appendix.
Linkage in SPIR-V
@farzonl has a PR up to deal with various issues related to the fact that we don’t have a linker phase in HLSL’s compilation flow. He would like feedback if this direction makes sense. See llvm/llvm-project#209672.
Appendix: Merged PRs
HLSL Frontend
- [HLSL] Adds diagnostics for missing/ambiguous shader entry function. (llvm/llvm-project#184892)
- [HLSL] Reject unbounded resource array and noinline function resource parameters (llvm/llvm-project#208111)
- [HLSL] Implement RWTexture2D (llvm/llvm-project#208267)
- [HLSL] Consolidate texture tests (llvm/llvm-project#209348)
DirectX Backend
- [DirectX] Add
--dx-embed-debugand--dx-pdb-pathflags (llvm/llvm-project#204166) - [Driver][DirectX] Add
/Qsource_in_debug_moduleflag (llvm/llvm-project#204415)
SPIR-V Backend
- [SPIR-V] Tie Int64ImageEXT to R64i/R64ui image format, not sampled type (llvm/llvm-project#203005)
- [SPIRV] Sign-extend operands of sign-sensitive ops on sub-pow2 widths (llvm/llvm-project#203661)
- [SPIR-V] Fix truncated LinkageAttributes OpDecorate for numeric-named functions (llvm/llvm-project#207332)
- [SPIR-V] Emit UniformId decoration as OpDecorateId with a Scope id operand (llvm/llvm-project#207958)
- [SPIR-V] Fix crash on switch with odd-width condition type (llvm/llvm-project#208026)
- [NFC][SPIR-V] Remove unused LowLevelType parameter from buildLoadInst (llvm/llvm-project#208428)
- [X86][AArch64][SPIRV] add more tests for
ldexp/frexp(llvm/llvm-project#208462) - [NFC][SPIR-V] Remove unused GR parameter from vector elt legalizers (llvm/llvm-project#208495)
- [NFC][SPIR-V] Add emitSimpleExecutionMode helper to dedup single imm OpExecutionMode emission (llvm/llvm-project#208674)
- [SPIR-V] Preserve offset alignment in pointer cast legalization (llvm/llvm-project#209251)
- [SPIR-V] Unify duplicated named MDNode lookup helper (llvm/llvm-project#209376)
- [NFC][SPIR-V] Remove stale XFAIL in vk-pushconstant-layout.ll (llvm/llvm-project#209447)
- [SPIR-V] Remove dead typed pointer check in getArgSPIRVType (llvm/llvm-project#209515)
Offload Test Suite
- Update Clang XFAILs for Texture2D SRVtoUAV tests (llvm/offload-test-suite#1363)
- [DX][NV] Remove XFAILs from 64-bit firstbitlow and firstbithigh tests (llvm/offload-test-suite#1364)
- [NV] XFAIL
PartiallyMappedResources.test(llvm/offload-test-suite#1366) - Make each runner upload lit test results (llvm/offload-test-suite#1367)
- Make
test-allmutually exclusive totest-dx-allandtest-vk-all(llvm/offload-test-suite#1368) - [VK] XFAIL
matrix_swizzle_one_based.testandmatrix_swizzle_zero_based.teston Clang Vulkan (llvm/offload-test-suite#1369) - Move Lavapipe targets to experimental tier (llvm/offload-test-suite#1371)
- Add
test-lavapipe,test-warpanddisable-default-tests(llvm/offload-test-suite#1372)