From 957c55de73b992ef0aad76e75653ab7d4b0e80ca Mon Sep 17 00:00:00 2001 From: Steve Urquhart Date: Wed, 18 Dec 2024 16:19:54 -0500 Subject: [PATCH] [SPIRV] Remove patch decoration from gl_TessCoord (#7187) --- tools/clang/lib/SPIRV/DeclResultIdMapper.cpp | 3 ++- tools/clang/test/CodeGenSPIRV/bezier.domain.hlsl2spv | 1 - tools/clang/test/CodeGenSPIRV/semantic.domain-location.ds.hlsl | 1 - tools/clang/test/CodeGenSPIRV/spirv.interface.ds.hlsl | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp b/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp index 0358873589..de73d5e417 100644 --- a/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp +++ b/tools/clang/lib/SPIRV/DeclResultIdMapper.cpp @@ -3522,7 +3522,8 @@ SpirvVariable *DeclResultIdMapper::createSpirvInterfaceVariable( // Decorate with PerPrimitiveNV for per-primitive out variables. spvBuilder.decoratePerPrimitiveNV(varInstr, varInstr->getSourceLocation()); - } else { + } else if (stageVar.getSemanticInfo().getKind() != + hlsl::Semantic::Kind::DomainLocation) { spvBuilder.decoratePatch(varInstr, varInstr->getSourceLocation()); } } diff --git a/tools/clang/test/CodeGenSPIRV/bezier.domain.hlsl2spv b/tools/clang/test/CodeGenSPIRV/bezier.domain.hlsl2spv index 3b0c060a0d..9d915a84f2 100644 --- a/tools/clang/test/CodeGenSPIRV/bezier.domain.hlsl2spv +++ b/tools/clang/test/CodeGenSPIRV/bezier.domain.hlsl2spv @@ -96,7 +96,6 @@ DS_OUTPUT BezierEvalDS( HS_CONSTANT_DATA_OUTPUT input, // CHECK-NEXT: OpDecorate %in_var_TANVCORNER Patch // CHECK-NEXT: OpDecorate %in_var_TANWEIGHTS Patch // CHECK-NEXT: OpDecorate %gl_TessCoord BuiltIn TessCoord -// CHECK-NEXT: OpDecorate %gl_TessCoord Patch // CHECK-NEXT: OpDecorate %gl_Position BuiltIn Position // CHECK-NEXT: OpDecorate %in_var_BEZIERPOS Location 0 // CHECK-NEXT: OpDecorate %in_var_TANGENT Location 1 diff --git a/tools/clang/test/CodeGenSPIRV/semantic.domain-location.ds.hlsl b/tools/clang/test/CodeGenSPIRV/semantic.domain-location.ds.hlsl index 5e4049f8c3..391e09a428 100644 --- a/tools/clang/test/CodeGenSPIRV/semantic.domain-location.ds.hlsl +++ b/tools/clang/test/CodeGenSPIRV/semantic.domain-location.ds.hlsl @@ -4,7 +4,6 @@ // CHECK-SAME: %gl_TessCoord // CHECK: OpDecorate %gl_TessCoord BuiltIn TessCoord -// CHECK: OpDecorate %gl_TessCoord Patch // CHECK: %gl_TessCoord = OpVariable %_ptr_Input_v3float Input diff --git a/tools/clang/test/CodeGenSPIRV/spirv.interface.ds.hlsl b/tools/clang/test/CodeGenSPIRV/spirv.interface.ds.hlsl index a8fe81e021..6f073aeb46 100644 --- a/tools/clang/test/CodeGenSPIRV/spirv.interface.ds.hlsl +++ b/tools/clang/test/CodeGenSPIRV/spirv.interface.ds.hlsl @@ -85,7 +85,6 @@ struct DsOut { // CHECK: OpDecorateString %gl_PointSize UserSemantic "PSIZE" // CHECK: OpDecorate %gl_TessCoord BuiltIn TessCoord // CHECK: OpDecorateString %gl_TessCoord UserSemantic "SV_DomainLocation" -// CHECK: OpDecorate %gl_TessCoord Patch // CHECK: OpDecorate %gl_TessLevelOuter BuiltIn TessLevelOuter // CHECK: OpDecorateString %gl_TessLevelOuter UserSemantic "SV_TessFactor" // CHECK: OpDecorate %gl_TessLevelOuter Patch