Drawing with a program that hasn't been re-linked is legal, but likely isn't what the application author intended. Give a helpful warning.
(_mesa_shader_debug might be more appropriate than _mesa_warning...) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78700 Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/main/context.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 860ae86..c428dbb 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -118,6 +118,7 @@ #include "scissor.h" #include "shared.h" #include "shaderobj.h" +#include "shaderapi.h" #include "simple_list.h" #include "state.h" #include "stencil.h" @@ -1813,7 +1814,7 @@ _mesa_check_blend_func_error(struct gl_context *ctx) static bool shader_linked_or_absent(struct gl_context *ctx, - const struct gl_shader_program *shProg, + struct gl_shader_program *shProg, bool *shader_present, const char *where) { if (shProg) { @@ -1823,6 +1824,13 @@ shader_linked_or_absent(struct gl_context *ctx, _mesa_error(ctx, GL_INVALID_OPERATION, "%s(shader not linked)", where); return false; } + + _mesa_check_for_recompiled_shaders(shProg); + if (shProg->NeedsRelink) { + _mesa_warning(ctx, "%s(shader program %u needs re-linking)", + where, shProg->Name); + } + #if 0 /* not normally enabled */ { char errMsg[100]; -- 1.9.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev