summaryrefslogtreecommitdiffstats
path: root/tests/spirv
diff options
context:
space:
mode:
authorLujin Wang <143145775+lujinwangnv@users.noreply.github.com>2025-06-26 09:29:32 -0700
committerGitHub <noreply@github.com>2025-06-26 16:29:32 +0000
commitd166fe8333c7dfc61c32fda5017461858eb4c3fa (patch)
tree89f76ef7e011d2df92b75dca5ccd1343c3275142 /tests/spirv
parent70ba9eef4466ce91d9b82033ee315d53114d2692 (diff)
Correct the scope for DebugLocalVariable (#7516)
* Correct the scope for DebugLocalVariable All of the DebugLocalVariable instructions have their scope set to DebugCompilationUnit. The scope should instead be set to a DebugFunction, or a DebugLexicalBlock which is recursively inside a DebugFunction. Register the debug info for the function instructions, which helps findDebugScope() to find the right DebugFunction scope for DebugLocalVariable. * Add a test for DebugLocalVariable To check the scope, which should be a DebugFunction.
Diffstat (limited to 'tests/spirv')
-rw-r--r--tests/spirv/debug-local-variable-scope.slang21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/spirv/debug-local-variable-scope.slang b/tests/spirv/debug-local-variable-scope.slang
new file mode 100644
index 000000000..22f6aef2e
--- /dev/null
+++ b/tests/spirv/debug-local-variable-scope.slang
@@ -0,0 +1,21 @@
+//TEST:SIMPLE(filecheck=CHECK):-target spirv -entry main -stage fragment -g2 -emit-spirv-directly
+
+Texture2D testTex : register(t0);
+SamplerState testSampler : register(s0);
+
+struct PSIn
+{
+ float4 pos : SV_Position;
+};
+
+float4 main(PSIn input) : SV_TARGET
+{
+ uint4 testPos = input.pos;
+ float bias = -1.0;
+ float2 tc = testPos.xy / 32.0;
+ float4 colVal = testTex.SampleBias(testSampler, tc, bias);
+ return float4(colVal.xyz, 1.0);
+}
+
+// CHECK: %[[FUNC_ID:[0-9]+]] = OpExtInst %void {{.*}} DebugFunction %{{[0-9]+}}
+// CHECK: DebugLocalVariable %{{[0-9]+}} %{{[0-9]+}} %{{[0-9]+}} %{{.*}} %{{.*}} %[[FUNC_ID]]