summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mapi/glapi/gen/gl_API.xml2
-rw-r--r--src/mesa/main/shaderapi.c18
-rw-r--r--src/mesa/main/shaderapi.h3
3 files changed, 22 insertions, 1 deletions
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 7afcc5db65d..18a78dc315b 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -5492,7 +5492,7 @@
<glx ignore="true"/>
</function>
- <function name="LinkProgram" es2="2.0">
+ <function name="LinkProgram" es2="2.0" no_error="true">
<param name="program" type="GLuint"/>
<glx ignore="true"/>
</function>
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 1c564d31704..6dd617be7e5 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -1242,6 +1242,13 @@ link_program_error(struct gl_context *ctx, struct gl_shader_program *shProg)
}
+static void
+link_program_no_error(struct gl_context *ctx, struct gl_shader_program *shProg)
+{
+ link_program(ctx, shProg, true);
+}
+
+
void
_mesa_link_program(struct gl_context *ctx, struct gl_shader_program *shProg)
{
@@ -1703,6 +1710,17 @@ _mesa_IsShader(GLuint name)
void GLAPIENTRY
+_mesa_LinkProgram_no_error(GLuint programObj)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ struct gl_shader_program *shProg =
+ _mesa_lookup_shader_program(ctx, programObj);
+ link_program_no_error(ctx, shProg);
+}
+
+
+void GLAPIENTRY
_mesa_LinkProgram(GLuint programObj)
{
GET_CURRENT_CONTEXT(ctx);
diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h
index b76e57ee39d..7915248e391 100644
--- a/src/mesa/main/shaderapi.h
+++ b/src/mesa/main/shaderapi.h
@@ -131,6 +131,9 @@ _mesa_IsProgram(GLuint name);
extern GLboolean GLAPIENTRY
_mesa_IsShader(GLuint name);
+void GLAPIENTRY
+_mesa_LinkProgram_no_error(GLuint programObj);
+
extern void GLAPIENTRY
_mesa_LinkProgram(GLuint programObj);