From 6d5ef9b650a9db35f7774ca09d9225d0c30849e4 Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 11 Jun 2024 00:01:12 -0700 Subject: Fix `GetAttributeAtVertex` for spirv and glsl targets. (#4334) --- tests/diagnostics/get-vertex-attribute.slang | 13 +++++++++++++ tests/spirv/get-vertex-attribute.slang | 15 +++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 tests/diagnostics/get-vertex-attribute.slang create mode 100644 tests/spirv/get-vertex-attribute.slang (limited to 'tests') diff --git a/tests/diagnostics/get-vertex-attribute.slang b/tests/diagnostics/get-vertex-attribute.slang new file mode 100644 index 000000000..613a5a7c8 --- /dev/null +++ b/tests/diagnostics/get-vertex-attribute.slang @@ -0,0 +1,13 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv + +struct VertexOutput +{ + float color; +} + +[shader("fragment")] +float4 fsmain(VertexOutput vout) : SV_Target +{ + // CHECK: ([[# @LINE+1]]): error 39027 + return GetAttributeAtVertex(vout.color, 0); // error: color must be decorated with `nointerpolation`. +} diff --git a/tests/spirv/get-vertex-attribute.slang b/tests/spirv/get-vertex-attribute.slang new file mode 100644 index 000000000..655b7ad03 --- /dev/null +++ b/tests/spirv/get-vertex-attribute.slang @@ -0,0 +1,15 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv +//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-via-glsl + +// CHECK: OpDecorate %vout_vertexID{{.*}} PerVertexKHR + +struct VertexOutput +{ + nointerpolation int vertexID; +} + +[shader("fragment")] +float4 fsmain(VertexOutput vout) : SV_Target +{ + return GetAttributeAtVertex(vout.vertexID, 0); +} -- cgit v1.2.3