svga: Remove stale references to delete shader results.

To ensure that a new result that happens to have the same address
of the old one will be detected as a change.
This commit is contained in:
José Fonseca 2010-01-05 17:56:26 +00:00
parent 8ebef37c7b
commit 38d8b18003
2 changed files with 14 additions and 0 deletions

View File

@ -111,6 +111,13 @@ void svga_delete_fs_state(struct pipe_context *pipe, void *shader)
util_bitmask_clear( svga->fs_bm, result->id );
svga_destroy_shader_result( result );
/*
* Remove stale references to this result to ensure a new result on the
* same address will be detected as a change.
*/
if(result == svga->state.hw_draw.fs)
svga->state.hw_draw.fs = NULL;
}
FREE((void *)fs->base.tokens);

View File

@ -176,6 +176,13 @@ static void svga_delete_vs_state(struct pipe_context *pipe, void *shader)
util_bitmask_clear( svga->vs_bm, result->id );
svga_destroy_shader_result( result );
/*
* Remove stale references to this result to ensure a new result on the
* same address will be detected as a change.
*/
if(result == svga->state.hw_draw.vs)
svga->state.hw_draw.vs = NULL;
}
FREE((void *)vs->base.tokens);