-
Notifications
You must be signed in to change notification settings - Fork 329
Milestone
Description
Issue Description
Compiler generates C-style casts in GLSL target which are not supported in GLSL. This also affects SPIR-V generation via -emit-spirv-via-glsl
.
Reproducer Code
[shader("vertex")]
float4 main(uint vertexID : SV_VertexID, uint64_t address) : SV_Position
{
let buffer = ConstBufferPointer<float4>(address);
return buffer[vertexID];
}
Expected Behavior
slangc a.slang -target glsl
should create valid GLSL with cast via constructor:
ConstBufferPointer_0 _S5 = ConstBufferPointer_x24init_0(BufferPointer__S1_2(address_0));
Actual Behavior
slangc a.slang -target glsl
creates invalid GLSL with C-style cast:
ConstBufferPointer_0 _S5 = ConstBufferPointer_x24init_0((BufferPointer__S1_2)address_0);
Direct compilation to SPIR-V works, but via GLSL it fails:
$ slangc a.slang -target spirv -o a.spv -entry main -emit-spirv-via-glsl
glslang: a.slang(2): warning : 'BufferPointer__S1_2' : identifiers containing consecutive underscores ("__") are reserved
glslang: a.slang(4): error : '' : syntax error, unexpected RIGHT_PAREN, expecting LEFT_PAREN
glslang: note : ERROR: 1 compilation errors. No code generated.
Environment:
$ slangc -version
2025.11-12-gc5295eae2
$ glslang --version
Glslang Version: 11:15.4.0
ESSL Version: OpenGL ES GLSL 3.20 glslang Khronos. 15.4.0
GLSL Version: 4.60 glslang Khronos. 15.4.0
SPIR-V Version 0x00010600, Revision 1
GLSL.std.450 Version 100, Revision 1
Khronos Tool ID 8
SPIR-V Generator Version 11
GL_KHR_vulkan_glsl version 100
ARB_GL_gl_spirv version 100
Copilot
Metadata
Metadata
Labels
No labels