diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c index 5c5dc8c8ae2..11572a2b687 100644 --- a/src/mesa/vbo/vbo_save_draw.c +++ b/src/mesa/vbo/vbo_save_draw.c @@ -208,13 +208,9 @@ vbo_save_playback_vertex_list(struct gl_context *ctx, void *data, bool copy_to_c if (ctx->NewState) _mesa_update_state(ctx); - /* XXX also need to check if shader enabled, but invalid */ - if ((ctx->VertexProgram.Enabled && - !_mesa_arb_vertex_program_enabled(ctx)) || - (ctx->FragmentProgram.Enabled && - !_mesa_arb_fragment_program_enabled(ctx))) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "glBegin (invalid vertex/fragment program)"); + /* Return precomputed GL errors such as invalid shaders. */ + if (!ctx->ValidPrimMask) { + _mesa_error(ctx, ctx->DrawGLError, "glCallList"); return; }