diff options
| author | Lujin Wang <143145775+lujinwangnv@users.noreply.github.com> | 2025-06-26 09:29:32 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-26 16:29:32 +0000 |
| commit | d166fe8333c7dfc61c32fda5017461858eb4c3fa (patch) | |
| tree | 89f76ef7e011d2df92b75dca5ccd1343c3275142 /tests | |
| parent | 70ba9eef4466ce91d9b82033ee315d53114d2692 (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')
| -rw-r--r-- | tests/spirv/debug-local-variable-scope.slang | 21 |
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]] |
