From ee55eaa609aee9ffd7ddbc839d7d6161727cee3a Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 14 Mar 2008 10:19:19 -0600 Subject: gallium: in st_program_string_notify() free shader tokens. When the shader instructions change, free the TGSI tokens. This signals the state tracker to recompile the shader. Fixes a regression caused by recent shader/state-tracker changes. --- src/mesa/state_tracker/st_cb_program.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mesa/state_tracker/st_cb_program.c b/src/mesa/state_tracker/st_cb_program.c index 4dc76f19b10..0a62e20e0c6 100644 --- a/src/mesa/state_tracker/st_cb_program.c +++ b/src/mesa/state_tracker/st_cb_program.c @@ -178,6 +178,11 @@ static void st_program_string_notify( GLcontext *ctx, stfp->param_state = stfp->Base.Base.Parameters->StateFlags; + if (stfp->state.tokens) { + FREE((void *) stfp->state.tokens); + stfp->state.tokens = NULL; + } + if (st->fp == stfp) st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM; } @@ -201,6 +206,11 @@ static void st_program_string_notify( GLcontext *ctx, stvp->param_state = stvp->Base.Base.Parameters->StateFlags; + if (stvp->state.tokens) { + FREE((void *) stvp->state.tokens); + stvp->state.tokens = NULL; + } + if (st->vp == stvp) st->dirty.st |= ST_NEW_VERTEX_PROGRAM; } -- cgit v1.2.3