2025-07-17 - HLSL Working Group Minutes
- Discussion topics
- Shader semantics implementation: https://github.com/llvm/wg-hlsl/pull/296
- @tex3d and @Keenuts discussed the documentation of HLSL semantic annotations.
- @tex3d mentioned the need to document DXC’s behavior including how system values are organized.
- Action Item to @Keenuts to expand documentation on DXC’s behavior
- @tex3d mentioned that the current implementation needs to be revised to handle additional use cases and complexity.
- @Keenuts has a branch supporting input, output and user semantics in progress.
- Root Signature driver options in clang: https://github.com/llvm/wg-hlsl/pull/320
- @inbelic walked through his proposal for bringing over driver options from DXC to Clang-DXC.
- Some of the options are very straightforward, like
-force-rootsig-ver
. Others are more complicated. - There was a discussion of how and when root signature validation occurs in Clang and DXC.
- @bogner: I think being consistent with whatever we do for that makes sense.
- @bogner: …in DXC, all of this stuff happens late. I think in Clang, we have to be a little bit more deliberate about some of these things because the things that are done in like the AST and Sema.
Qstrip_rootsignature
fairly common and widely used, and we will need to support itsetrootsignature
is also used when attaching separately compiled root signatures- @tex3d suggested container manipulation in a separate tool similar to dxa in DXC.
- @llvm-beanz suggested adding support in objcopy which would align with idomatic practices in LLVM and Clang
- Driver options could be implemented in terms of an external tool for compatability and made more efficient later if performance is a problem.
- @tex3d noted that the
verifyrootsignature
validates the shader bindings against the root signature. This option is essential for ensuring the validity of the root signature and shader combination - The
Frs
option was also discussed.- @bogner suggested adding this as a driver action to post-process the output file
- Action Item to @inbelic: Create a scenario for
objcopy
support to handle container manipulation support.
- Scalarizer pass generating invalid DXIL: https://github.com/llvm/llvm-project/issues/149345
- Agreement seems to be that this is a bug in the scalarizer pass which needs investigation.
- Lowering of structs to DXIL: https://github.com/llvm/llvm-project/issues/147109
- Did not get to this topic, will be carried over to next week.