Files
clang-p2996/llvm/test/ObjectYAML/DXContainer/GeometryMaskVectors.yaml
Chris B b799e9dafa [DX] Support pipeline state masks (#66425)
The DXContainer pipeline state information encodes a bunch of mask
vectors that are used to track things about the inputs and outputs from
each shader.

This adds support for reading and writing them throught he YAML test
interfaces. The writing logic in MC is extremely primitive and we'll
want to revisit the API for that, but since I'm not sure how we'll want
to generate the mask bits from DXIL during code generation I didn't want
to spend too much time on the API.

Fixes #59479
2023-09-15 10:02:54 -05:00

175 lines
5.2 KiB
YAML

# RUN: yaml2obj %s | obj2yaml | FileCheck %s
--- !dxcontainer
Header:
Hash: [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
Version:
Major: 1
Minor: 0
FileSize: 3836
PartCount: 7
PartOffsets: [ 60, 76, 204, 292, 584, 2092, 2120 ]
Parts:
- Name: SFI0
Size: 8
Flags:
Doubles: false
ComputeShadersPlusRawAndStructuredBuffers: false
UAVsAtEveryStage: false
Max64UAVs: false
MinimumPrecision: false
DX11_1_DoubleExtensions: false
DX11_1_ShaderExtensions: false
LEVEL9ComparisonFiltering: false
TiledResources: false
StencilRef: false
InnerCoverage: false
TypedUAVLoadAdditionalFormats: false
ROVs: false
ViewportAndRTArrayIndexFromAnyShaderFeedingRasterizer: false
WaveOps: false
Int64Ops: false
ViewID: true
Barycentrics: false
NativeLowPrecision: false
ShadingRate: false
Raytracing_Tier_1_1: false
SamplerFeedback: false
AtomicInt64OnTypedResource: false
AtomicInt64OnGroupShared: false
DerivativesInMeshAndAmpShaders: false
ResourceDescriptorHeapIndexing: false
SamplerDescriptorHeapIndexing: false
RESERVED: false
AtomicInt64OnHeapResource: false
AdvancedTextureOps: false
WriteableMSAATextures: false
NextUnusedBit: false
- Name: ISG1
Size: 120
- Name: OSG1
Size: 80
- Name: PSV0
Size: 284
PSVInfo:
Version: 2
ShaderStage: 2
InputPrimitive: 3
OutputTopology: 1
OutputStreamMask: 3
OutputPositionPresent: 0
MinimumWaveLaneCount: 0
MaximumWaveLaneCount: 4294967295
UsesViewID: 1
MaxVertexCount: 3
SigInputVectors: 3
SigOutputVectors: [ 1, 1, 0, 0 ]
NumThreadsX: 0
NumThreadsY: 0
NumThreadsZ: 0
ResourceStride: 24
Resources: []
SigInputElements:
- Name: ''
Indices: [ 0 ]
StartRow: 0
Cols: 4
StartCol: 0
Allocated: true
Kind: Position
ComponentType: Float32
Interpolation: LinearNoperspective
DynamicMask: 0x0
Stream: 0
- Name: AAA
Indices: [ 2 ]
StartRow: 1
Cols: 2
StartCol: 0
Allocated: true
Kind: Arbitrary
ComponentType: Float32
Interpolation: Linear
DynamicMask: 0x0
Stream: 0
- Name: AAA
Indices: [ 3 ]
StartRow: 2
Cols: 4
StartCol: 0
Allocated: true
Kind: Arbitrary
ComponentType: Float32
Interpolation: Linear
DynamicMask: 0x0
Stream: 0
SigOutputElements:
- Name: BBB
Indices: [ 0 ]
StartRow: 0
Cols: 4
StartCol: 0
Allocated: true
Kind: Arbitrary
ComponentType: Float32
Interpolation: Linear
DynamicMask: 0x0
Stream: 0
- Name: CCC
Indices: [ 0 ]
StartRow: 0
Cols: 4
StartCol: 0
Allocated: true
Kind: Arbitrary
ComponentType: Float32
Interpolation: Linear
DynamicMask: 0x0
Stream: 1
SigPatchOrPrimElements: []
OutputVectorMasks:
- [ 0xE ]
- [ 0x5 ]
- [ ]
- [ ]
InputOutputMap:
- [ 0x2, 0x4, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
- [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2, 0x4, 0x8 ]
- [ ]
- [ ]
- Name: STAT
Size: 1500
- Name: HASH
Size: 20
Hash:
IncludesSource: false
Digest: [ 0x10, 0xA2, 0x84, 0xA5, 0x76, 0xA6, 0x28, 0x82,
0x21, 0x39, 0x1, 0xE0, 0x53, 0x19, 0xBE, 0x79 ]
- Name: DXIL
Size: 24
Program:
MajorVersion: 6
MinorVersion: 1
ShaderKind: 2
Size: 6
DXILMajorVersion: 1
DXILMinorVersion: 1
DXILSize: 0
...
# Verify the vector sizes.
# CHECK: SigInputVectors: 3
# CHECK-NEXT: SigOutputVectors: [ 1, 1, 0, 0 ]
# Verify the vector mask encodings.
# CHECK: OutputVectorMasks:
# CHECK-NEXT: - [ 0xE ]
# CHECK-NEXT: - [ 0x5 ]
# CHECK-NEXT: - [ ]
# CHECK-NEXT: - [ ]
# CHECK-NEXT: InputOutputMap:
# CHECK-NEXT: - [ 0x2, 0x4, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 ]
# CHECK-NEXT: - [ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2, 0x4, 0x8 ]
# CHECK-NEXT: - [ ]
# CHECK-NEXT: - [ ]