summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/glsl.meta.slang1
-rw-r--r--source/slang/slang-ir-glsl-legalize.cpp3
2 files changed, 4 insertions, 0 deletions
diff --git a/source/slang/glsl.meta.slang b/source/slang/glsl.meta.slang
index f63daf6b0..c78aa2a15 100644
--- a/source/slang/glsl.meta.slang
+++ b/source/slang/glsl.meta.slang
@@ -215,6 +215,7 @@ public in int gl_ViewIndex : SV_ViewID;
public in int gl_ViewportIndex : SV_ViewportArrayIndex;
public in int gl_BaseVertex : SV_StartVertexLocation;
public in int gl_BaseInstance : SV_StartInstanceLocation;
+public in int gl_DrawID : SV_DrawIndex;
public in int gl_FragInvocationCountEXT : SV_FragInvocationCount;
public in int2 gl_FragSizeEXT : SV_FragSize;
diff --git a/source/slang/slang-ir-glsl-legalize.cpp b/source/slang/slang-ir-glsl-legalize.cpp
index bc26b223b..1511bbff2 100644
--- a/source/slang/slang-ir-glsl-legalize.cpp
+++ b/source/slang/slang-ir-glsl-legalize.cpp
@@ -678,6 +678,9 @@ GLSLSystemValueInfo* getGLSLSystemValueInfo(
}
else if (semanticName == "sv_drawindex")
{
+ context->requireGLSLVersion(ProfileVersion::GLSL_460);
+ context->requireGLSLExtension(toSlice("GL_ARB_shader_draw_parameters"));
+
name = "gl_DrawID";
requiredType = builder->getBasicType(BaseType::Int);
}