From 6c99ecfc8a6e43239d3be49e1f25e7836889c47d Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Wed, 28 Aug 2024 12:24:18 -0700 Subject: [PATCH] [Dump] Fix PSV dump issues. (#6881) 1. Number of SemanticIndex should match number of rows instead of number of columns. 2. Mesh shader could have ViewID mask for Primitive output. For #6817. --- lib/DxilContainer/DxilPipelineStateValidation.cpp | 4 ++-- tools/clang/test/DXC/dumpPSV_DS.hlsl | 14 +++++++------- tools/clang/test/DXC/dumpPSV_GS.hlsl | 10 +++++----- tools/clang/test/DXC/dumpPSV_HS.hlsl | 14 +++++++------- tools/clang/test/DXC/dumpPSV_MS.hlsl | 8 +++++--- tools/clang/test/DXC/dumpPSV_PS.hlsl | 6 +++--- tools/clang/test/DXC/dumpPSV_VS.hlsl | 12 ++++++------ 7 files changed, 35 insertions(+), 33 deletions(-) diff --git a/lib/DxilContainer/DxilPipelineStateValidation.cpp b/lib/DxilContainer/DxilPipelineStateValidation.cpp index f82ac4863a..5576fdd72d 100644 --- a/lib/DxilContainer/DxilPipelineStateValidation.cpp +++ b/lib/DxilContainer/DxilPipelineStateValidation.cpp @@ -364,7 +364,7 @@ void PSVSignatureElement::Print(raw_ostream &OS) const { OS << " SemanticName: " << GetSemanticName() << "\n"; OS << " SemanticIndex: "; const uint32_t *SemanticIndexes = GetSemanticIndexes(); - for (unsigned i = 0; i < GetCols(); ++i) { + for (unsigned i = 0; i < GetRows(); ++i) { OS << *(SemanticIndexes + i) << " "; } OS << "\n"; @@ -880,7 +880,7 @@ void DxilPipelineStateValidation::Print(raw_ostream &OS, ViewIDMask.Print(OS, "ViewID", OutputSetName.c_str()); } - if (IsHS()) { + if (IsHS() || IsMS()) { OS << "PCOutputs affected by ViewID as a bitmask:\n"; uint8_t OutputVectors = m_pPSVRuntimeInfo1->SigPatchConstOrPrimVectors; const PSVComponentMask ViewIDMask(m_pViewIDPCOrPrimOutputMask, diff --git a/tools/clang/test/DXC/dumpPSV_DS.hlsl b/tools/clang/test/DXC/dumpPSV_DS.hlsl index 21c6a2bb27..9963864f45 100644 --- a/tools/clang/test/DXC/dumpPSV_DS.hlsl +++ b/tools/clang/test/DXC/dumpPSV_DS.hlsl @@ -20,7 +20,7 @@ // CHECK-NEXT: ResourceCount : 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 0 1 2 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -33,7 +33,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -46,7 +46,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: NORMAL -// CHECK-NEXT: SemanticIndex: 0 0 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 2 // CHECK-NEXT: StartCol: 0 @@ -72,7 +72,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 0 1 2 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -85,7 +85,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -98,7 +98,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: NORMAL -// CHECK-NEXT: SemanticIndex: 0 0 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 2 // CHECK-NEXT: StartCol: 0 @@ -124,7 +124,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 +// CHECK-NEXT: SemanticIndex: 0 1 2 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 3 diff --git a/tools/clang/test/DXC/dumpPSV_GS.hlsl b/tools/clang/test/DXC/dumpPSV_GS.hlsl index f26d72061f..fa6496f3dc 100644 --- a/tools/clang/test/DXC/dumpPSV_GS.hlsl +++ b/tools/clang/test/DXC/dumpPSV_GS.hlsl @@ -30,7 +30,7 @@ // CHECK-NEXT: ResFlags: None // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: POSSIZE -// CHECK-NEXT: SemanticIndex: 0 16 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -43,7 +43,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: COLOR -// CHECK-NEXT: SemanticIndex: 0 16 1 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -69,7 +69,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 16 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -82,7 +82,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: COLOR -// CHECK-NEXT: SemanticIndex: 0 16 1 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -95,7 +95,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 16 1 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 2 // CHECK-NEXT: StartCol: 0 diff --git a/tools/clang/test/DXC/dumpPSV_HS.hlsl b/tools/clang/test/DXC/dumpPSV_HS.hlsl index f6a69d6b51..1de1cb6da6 100644 --- a/tools/clang/test/DXC/dumpPSV_HS.hlsl +++ b/tools/clang/test/DXC/dumpPSV_HS.hlsl @@ -23,7 +23,7 @@ // CHECK-NEXT: ResourceCount : 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 0 1 2 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -36,7 +36,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -49,7 +49,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: NORMAL -// CHECK-NEXT: SemanticIndex: 0 0 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 2 // CHECK-NEXT: StartCol: 0 @@ -62,7 +62,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 0 1 2 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -75,7 +75,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -88,7 +88,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: NORMAL -// CHECK-NEXT: SemanticIndex: 0 0 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 2 // CHECK-NEXT: StartCol: 0 @@ -101,7 +101,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 +// CHECK-NEXT: SemanticIndex: 0 1 2 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 3 diff --git a/tools/clang/test/DXC/dumpPSV_MS.hlsl b/tools/clang/test/DXC/dumpPSV_MS.hlsl index 579efb5955..6e8db9eb1e 100644 --- a/tools/clang/test/DXC/dumpPSV_MS.hlsl +++ b/tools/clang/test/DXC/dumpPSV_MS.hlsl @@ -21,7 +21,7 @@ // CHECK-NEXT: ResourceCount : 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 0 1 2 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -34,7 +34,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: COLOR -// CHECK-NEXT: SemanticIndex: 0 +// CHECK-NEXT: SemanticIndex: 0 1 2 3 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -99,7 +99,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: LAYER -// CHECK-NEXT: SemanticIndex: 0 +// CHECK-NEXT: SemanticIndex: 0 1 2 3 4 5 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -125,6 +125,8 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: Outputs affected by ViewID as a bitmask for stream 0: // CHECK-NEXT: ViewID influencing Outputs[0] : 0 1 2 3 4 8 12 16 +// CHECK-NEXT: PCOutputs affected by ViewID as a bitmask: +// CHECK-NEXT: ViewID influencing PCOutputs : None // CHECK-NEXT: Outputs affected by inputs as a table of bitmasks for stream 0: // CHECK-NEXT: Inputs contributing to computation of Outputs[0]: None diff --git a/tools/clang/test/DXC/dumpPSV_PS.hlsl b/tools/clang/test/DXC/dumpPSV_PS.hlsl index 506059a407..70c92aa125 100644 --- a/tools/clang/test/DXC/dumpPSV_PS.hlsl +++ b/tools/clang/test/DXC/dumpPSV_PS.hlsl @@ -42,7 +42,7 @@ // CHECK-NEXT: ResFlags: None // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: NORMAL -// CHECK-NEXT: SemanticIndex: 0 16 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -55,7 +55,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 16 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -68,7 +68,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 16 1 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 diff --git a/tools/clang/test/DXC/dumpPSV_VS.hlsl b/tools/clang/test/DXC/dumpPSV_VS.hlsl index a4f92f79fd..119807bf28 100644 --- a/tools/clang/test/DXC/dumpPSV_VS.hlsl +++ b/tools/clang/test/DXC/dumpPSV_VS.hlsl @@ -27,7 +27,7 @@ // CHECK-NEXT: ResFlags: None // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: POSITION -// CHECK-NEXT: SemanticIndex: 0 16 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -40,7 +40,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: NORMAL -// CHECK-NEXT: SemanticIndex: 0 16 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -53,7 +53,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 16 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 2 // CHECK-NEXT: StartCol: 0 @@ -66,7 +66,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: NORMAL -// CHECK-NEXT: SemanticIndex: 0 16 1 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 0 // CHECK-NEXT: StartCol: 0 @@ -79,7 +79,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: TEXCOORD -// CHECK-NEXT: SemanticIndex: 0 16 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 1 // CHECK-NEXT: StartCol: 0 @@ -92,7 +92,7 @@ // CHECK-NEXT: DynamicIndexMask: 0 // CHECK-NEXT: PSVSignatureElement: // CHECK-NEXT: SemanticName: -// CHECK-NEXT: SemanticIndex: 0 16 1 0 +// CHECK-NEXT: SemanticIndex: 0 // CHECK-NEXT: IsAllocated: 1 // CHECK-NEXT: StartRow: 2 // CHECK-NEXT: StartCol: 0