HLSL Working Group

2026-08-06 - HLSL Working Group Minutes

Discussion Topics

  • This week in HLSL
  • Requests for Review

Meeting Notes

This Week in HLSL

We saw 36 PRs merged, 14 new PRs opened, and have 65 PRs ongoing. This was a fairly light week for HLSL and DirectX, with most of the changes going in being SPIR-V related or offload test suite updates.

For a full list of merged PRs, see the appendix.

Requests for Review

There are a few PRs that folks have asked for eyes on.

  • @tcorringham has three PRs in flight that need some attention:
    • [HLSL][SPIRV] Add IntrConvergent to convergent intrinsics (llvm/llvm-project#211256)
    • Amend matrix_bool_* tests (llvm/offload-test-suite#1424)
    • [SPIRV] Legalize byte-buffer reinterpretation ptrcasts (llvm/llvm-project#212999)
  • @farzonl has a draft PR and an RFC about changing the matrix layout representation and would like feedback:

Appendix: Merged PRs

HLSL Frontend

  • [HLSL] Consistently quote resource attribute args (llvm/llvm-project#214106)

DirectX Backend

  • [DirectX] Prevent dxil-resource-access from inserting a resource access in-between phi nodes (llvm/llvm-project#211343)
  • [MC][DXContainer] Avoid reading moved-from ContentEntry (llvm/llvm-project#211741)
  • [MC][DXContainer] Initialize SourceNames::Header scalar fields (llvm/llvm-project#211751)
  • Add atomic shader flags for resources (llvm/llvm-project#212869)

SPIR-V Backend

  • [SPIR-V] Fix validation errors for function pointers with CodeSectionINTEL storage class (llvm/llvm-project#192973)
  • [SPIRV] Legalize i1 min/max before selection (llvm/llvm-project#204231)
  • [SPIR-V] Parse parameterized Memory Access operands with a shared helper (llvm/llvm-project#209262)
  • Implement support for NSDI DebugFunctionDefinition. (llvm/llvm-project#211853)
  • [SPIRV] Emit FPFastMathMode for Call (llvm/llvm-project#211879)
  • [SPIR-V] Preserve sign and payload when printing NaN as hex float (llvm/llvm-project#212438)
  • [SPIRV] Legalize Cast Instructions for Matrix Types (llvm/llvm-project#212619)
  • [SPIRV][HLSL] Fix Vulkan-invalid SPIR-V for Interlocked* on groupshared/UAV memory (llvm/llvm-project#212663)
  • [SPIR-V] Fix OpGroupAsyncCopy null event substitution (llvm/llvm-project#212754)
  • [SPIR-V] Expand atomicrmw nand through compare-exchange (llvm/llvm-project#213217)
  • [SPIR-V] Legalize wide-vector atan2 by splitting first (llvm/llvm-project#213341)
  • [SPIR-V] Preserve float types through wide float shuffles and atan2 legalization (llvm/llvm-project#213785)
  • [SPIRV] Split wide shader PHIs before applying explicit supported types (llvm/llvm-project#213806)
  • [SPIR-V] Fix truncation of nonzero constant bool argument in group builtins (llvm/llvm-project#214142)
  • [SPIR-V] Build vendored SPIRV-Tools in Release mode (llvm/llvm-project#214159)

Offload Test Suite

  • [SPIRV] Enable switch statement tests (llvm/offload-test-suite#1393)
  • Add ZeroTolerance for ULP compares near 0 (llvm/offload-test-suite#1394)
  • Update unimplemented xfails for interlockedor (llvm/offload-test-suite#1401)
  • Set up frequent builder machine that builds dxc and clang on x64 (llvm/offload-test-suite#1406)
  • Add step matrix tests (llvm/offload-test-suite#1408)
  • [Vulkan][MoltenVK] Enable tests that are now passing (llvm/offload-test-suite#1409)
  • [Vulkan][KosmicKrisp] Enable tests that are now passing (llvm/offload-test-suite#1410)
  • [Vulkan] Enable Transpose of bool matrix (llvm/offload-test-suite#1411)
  • Enable Mandelbrot everywhere (llvm/offload-test-suite#1412)
  • Add InterlockedCompareStore tests (llvm/offload-test-suite#1416)
  • [SPIRV][Vulkan] Enable the Atan2 tests (llvm/offload-test-suite#1417)
  • Introduce global timeout for individual lit tests. (llvm/offload-test-suite#1419)