/HLSLTest

Experimental Runtime test suite for HLSL

Primary LanguageC++OtherNOASSERTION

HLSLTest

Experimental Runtime test suite for HLSL

Prerequisites

This project requires being able to locally build LLVM and leverages LLVM's build infrastructure. It also requires installing the pyyaml Python package. You can install pyyaml by running:

pip3 install pyyaml

Adding to LLVM Build

Add the following to the CMake options:

-DLLVM_EXTERNAL_HLSLTEST_SOURCE_DIR=${workspaceRoot}\..\HLSLTest -DLLVM_EXTERNAL_PROJECTS="HLSLTest"

If you do not have a build of dxc on your path you'll need to specify the shader compiler to use by passing:

-DHLSLTEST_COMPILER=<path to compiler>

YAML Pipeline Format

This framework provides a YAML representation for describing GPU pipelines and buffers. The format is implemented by the API/Pipeline.{h|cpp} sources. The following is an example pipleine YAML description:

---
DescriptorSets:
  - Resources:
    - Access: Constant
      Format: Int32
      Data: [ 1, 2, 3, 4, 5, 6, 7, 8]
      DirectXBinding:
        Register: 0 # implies b0 due to Access being RW
        Space: 0
    - Access: ReadOnly
      Format: Float32
      Data: [ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
      DirectXBinding:
        Register: 0 # implies t0 due to Access being RO
        Space: 0
  - Resources:
    - Access: ReadOnly
      Format: Hex16
      Data: [ 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]
      DirectXBinding:
        Register: 1 # implies t1 due to Access being RO
        Space: 0
...