diff options
Diffstat (limited to 'src/gallium/drivers/svga/svga_pipe_fs.c')
-rw-r--r-- | src/gallium/drivers/svga/svga_pipe_fs.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/drivers/svga/svga_pipe_fs.c b/src/gallium/drivers/svga/svga_pipe_fs.c index a461a86dd3..5f1213e46a 100644 --- a/src/gallium/drivers/svga/svga_pipe_fs.c +++ b/src/gallium/drivers/svga/svga_pipe_fs.c @@ -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); |