This function flagged BRW_NEW_*_PROGRAM When ctx->{Vertex,Geometry,Fragment}Program._Current changes, core Mesa calls the BindProgram driver hook, which flagged BRW_NEW_*_PROGRAM.
However, brw_upload_state also checks for that changing, sets the same flags, and also updates brw->fragment_program and so on. So, this looks to be entirely redundant. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_program.c | 20 -------------------- 1 file changed, 20 deletions(-) Tested with Piglit and a manual inspection of an apitrace of Shadowrun Returns, which uses a variety of ARB programs. diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c index d782b4f..b37da4e 100644 --- a/src/mesa/drivers/dri/i965/brw_program.c +++ b/src/mesa/drivers/dri/i965/brw_program.c @@ -54,25 +54,6 @@ get_new_program_id(struct intel_screen *screen) return id; } -static void brwBindProgram( struct gl_context *ctx, - GLenum target, - struct gl_program *prog ) -{ - struct brw_context *brw = brw_context(ctx); - - switch (target) { - case GL_VERTEX_PROGRAM_ARB: - brw->state.dirty.brw |= BRW_NEW_VERTEX_PROGRAM; - break; - case MESA_GEOMETRY_PROGRAM: - brw->state.dirty.brw |= BRW_NEW_GEOMETRY_PROGRAM; - break; - case GL_FRAGMENT_PROGRAM_ARB: - brw->state.dirty.brw |= BRW_NEW_FRAGMENT_PROGRAM; - break; - } -} - static struct gl_program *brwNewProgram( struct gl_context *ctx, GLenum target, GLuint id ) @@ -250,7 +231,6 @@ void brwInitFragProgFuncs( struct dd_function_table *functions ) { assert(functions->ProgramStringNotify == _tnl_program_string); - functions->BindProgram = brwBindProgram; functions->NewProgram = brwNewProgram; functions->DeleteProgram = brwDeleteProgram; functions->IsProgramNative = brwIsProgramNative; -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev