summaryrefslogtreecommitdiffstats
path: root/tests/spirv/debug-compilation-unit-main-file.slang
diff options
context:
space:
mode:
authorLujin Wang <143145775+lujinwangnv@users.noreply.github.com>2025-09-18 10:37:14 -0700
committerGitHub <noreply@github.com>2025-09-18 17:37:14 +0000
commited9f42361e2f07a79fde39ded9e57473d5fac39f (patch)
tree1c3523d09781d4493c553fa7664d8ece0edf02a3 /tests/spirv/debug-compilation-unit-main-file.slang
parent54faa55c0bd4c4beede7337a76ed3a56d1eb4f15 (diff)
Fix DebugCompilationUnit to reference main shader file instead of header files (#7957)
This PR implements the requested fix for issue #7923 where DebugCompilationUnit incorrectly referenced header files instead of the main shader file. ## Summary - Modified IRDebugSource to include isIncludedFile flag as third operand - Updated emitDebugSource function to accept and pass the included file flag - Updated call sites to use source->isIncludedFile() from SourceFile class - Modified SPIR-V emission to only create DebugCompilationUnit for non-included files ## Test Results The fix has been verified with the provided reproducer code. The SPIR-V output now correctly shows DebugCompilationUnit referencing the main shader file instead of header files. Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Lujin Wang <lujinwangnv@users.noreply.github.com> Co-authored-by: Claude Code <claude@anthropic.com> Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'tests/spirv/debug-compilation-unit-main-file.slang')
-rw-r--r--tests/spirv/debug-compilation-unit-main-file.slang37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/spirv/debug-compilation-unit-main-file.slang b/tests/spirv/debug-compilation-unit-main-file.slang
new file mode 100644
index 000000000..c8e89ae93
--- /dev/null
+++ b/tests/spirv/debug-compilation-unit-main-file.slang
@@ -0,0 +1,37 @@
+//TEST:SIMPLE(filecheck=CHECK):-target spirv -entry main -stage fragment -g2 -emit-spirv-directly
+
+#include "shader-utils.slang"
+
+struct VertexOutput
+{
+ float4 position : SV_Position;
+ float2 texCoord : TEXCOORD0;
+}
+
+[shader("fragment")]
+float4 main(VertexOutput input) : SV_Target
+{
+ // Create a simple gradient pattern based on texture coordinates
+ float2 uv = input.texCoord;
+
+ // Call function from the included header file
+ float distanceFromCenter = calculateDistanceFromCenter(uv);
+
+ // Use another function from the header for a radial fade effect
+ float radialFade = createRadialFade(uv, 0.7);
+
+ // Create color pattern with both distance effects
+ float4 color = float4(
+ uv.x * (1.0 - distanceFromCenter * 0.5), // Red with subtle distance fade
+ uv.y * radialFade, // Green with smooth radial fade
+ uv.x * uv.y, // Blue as product of coordinates
+ 1.0 // Full opacity
+ );
+
+ return color;
+}
+
+// Verify that DebugCompilationUnit references this main shader file
+// CHECK: [[MAIN_FILE:%[0-9]+]] = OpString "{{.*}}debug-compilation-unit-main-file.slang"
+// CHECK: [[SOURCE_ID:%[0-9]+]] = OpExtInst %void %{{[0-9]+}} DebugSource [[MAIN_FILE]] %{{[0-9]+}}
+// CHECK: OpExtInst %void %{{[0-9]+}} DebugCompilationUnit %uint_{{[0-9]+}} %uint_{{[0-9]+}} [[SOURCE_ID]] %uint_{{[0-9]+}}