-
Notifications
You must be signed in to change notification settings - Fork 246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slang generates not spec compliant sequence of NonSemantic.DebugInfo instructions #5859
Comments
I tried this with a simple shader and unable to reproduce the interleaving. The interleaving could have been introduced by spirv-opt instead of slang. Have you tried |
We will need a reproducer to proceed with this issue. |
I filed a Khronos issue with a minimal repro: KhronosGroup/SPIRV-Tools#5950 |
We should try a top of tree build of spirv-opt and see if that addresses the issue. |
The release I used is only days old. 1.4.304.0 from 1/13/2025 |
Oh, my mistake. While the SDK is from 1/13/2025, the Spirv-tools binaries are from 12/5/2024, so there is a bigger gap, and in fact the change that fixed this issue was identified as one that was submitted on 12/13/2024. |
Confirmed it is fixed at TOT |
Pick up fix to shader-slang#5859
Update slang to use newer spirv-tools: #6145 |
Pick up fix to shader-slang#5859
For very long shaders, when the source strings are split up in DebugSource and DebugSourceContinued, Slang produces a sequence of instructions that is not following the spec for DebugSourceContinued. That says: "The previous instruction must be a DebugSource or DebugSourceContinued instruction.". However, for the first DebugSource/DebugSourceContinued the DebugCompilationUnit instruction is interleaved.
For example:
%4 = OpExtInst %void %2 DebugSource %5 %1
%10 = OpExtInst %void %2 DebugCompilationUnit %uint_100 %uint_5 %4 %uint_11
%51 = OpExtInst %void %2 DebugSourceContinued %50
%53 = OpExtInst %void %2 DebugSourceContinued %52
%67 = OpExtInst %void %2 DebugSourceContinued %66
The text was updated successfully, but these errors were encountered: