From 4a8e68369b22076d4c707095ba1503081a1a3060 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Wed, 24 Dec 2025 23:12:46 -0500 Subject: [PATCH 1/3] Corrected setting IRBuilder debug location in HLSignatureLower::GenerateDxilComputeAndNodeCommonInputs() --- lib/HLSL/HLSignatureLower.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/HLSL/HLSignatureLower.cpp b/lib/HLSL/HLSignatureLower.cpp index bb5c25f6ee..3fdb228594 100644 --- a/lib/HLSL/HLSignatureLower.cpp +++ b/lib/HLSL/HLSignatureLower.cpp @@ -1253,6 +1253,8 @@ void HLSignatureLower::GenerateDxilComputeAndNodeCommonInputs() { DXASSERT(funcAnnotation, "must find annotation for entry function"); auto &funcProps = HLM.GetDxilFunctionProps(Entry); IRBuilder<> Builder(Entry->getEntryBlock().getFirstInsertionPt()); + Builder.SetCurrentDebugLocation( + Entry->getEntryBlock().getFirstNonPHIOrDbg()->getDebugLoc()); for (Argument &arg : Entry->args()) { DxilParameterAnnotation ¶mAnnotation = From e441ec72596f0fecb5c797e6c61a7ae6acce8033 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Mon, 29 Dec 2025 18:40:46 -0500 Subject: [PATCH 2/3] Added a test. --- .../dxil/debug/dxop_threadid_dbgloc.hlsl | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl diff --git a/tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl b/tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl new file mode 100644 index 0000000000..a5f4114eed --- /dev/null +++ b/tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl @@ -0,0 +1,24 @@ +// RUN: %dxc -T cs_6_5 -E CSMain -O0 -Zi -enable-16bit-types %s | FileCheck %s + +// CHECK-LABEL: @CSMain() +// CHECK: %{{[0-9]+}} = call i32 @dx.op.threadId.i32(i32 {{[0-9]+}}, i32 {{[0-9]+}}), !dbg [[DBG_MD:![0-9]+]] +// CHECK: [[SUBPGM:![0-9]+]] = !DISubprogram(name: "CSMain" +// CHECK: [[DBG_MD]] = !DILocation(line: 21, column: 15, scope: [[SUBPGM]]) + +RWBuffer u0 : register(u0); +RWBuffer u1 : register(u1); + +static float my_var; +static float my_var2; + +void foo() { + my_var2 = my_var * 2; +} + +[RootSignature("DescriptorTable(UAV(u0,numDescriptors=2))")] +[numthreads(64,1,1)] +void CSMain(uint3 dtid : SV_DispatchThreadID) { + my_var = u0[dtid.x]; + foo(); + u1[dtid.x] = my_var2; +} From aa9790056cda121847a1ad19cc0362c23c3fe027 Mon Sep 17 00:00:00 2001 From: kpyzhov Date: Mon, 5 Jan 2026 11:51:11 -0500 Subject: [PATCH 3/3] Update dxop_threadid_dbgloc.hlsl --- .../test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl b/tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl index a5f4114eed..a17cd5572a 100644 --- a/tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl +++ b/tools/clang/test/HLSLFileCheck/dxil/debug/dxop_threadid_dbgloc.hlsl @@ -2,8 +2,8 @@ // CHECK-LABEL: @CSMain() // CHECK: %{{[0-9]+}} = call i32 @dx.op.threadId.i32(i32 {{[0-9]+}}, i32 {{[0-9]+}}), !dbg [[DBG_MD:![0-9]+]] -// CHECK: [[SUBPGM:![0-9]+]] = !DISubprogram(name: "CSMain" -// CHECK: [[DBG_MD]] = !DILocation(line: 21, column: 15, scope: [[SUBPGM]]) +// CHECK-DAG: [[SUBPGM:![0-9]+]] = !DISubprogram(name: "CSMain" +// CHECK-DAG: [[DBG_MD]] = !DILocation(line: 21, column: 15, scope: [[SUBPGM]]) RWBuffer u0 : register(u0); RWBuffer u1 : register(u1);