summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/svga/svga_state_tss.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2012-11-27 15:17:27 -0700
committerBrian Paul <brianp@vmware.com>2013-01-25 15:57:35 -0700
commitc1d35aece0afc2822d6d9f6c22664c04e6fcbba3 (patch)
tree4f22584d7e411e266d781848fdc8e6cd658c7983 /src/gallium/drivers/svga/svga_state_tss.c
parent50c4c818aa61ccc2c815ea722746dd1b12dd5624 (diff)
downloadexternal_mesa3d-c1d35aece0afc2822d6d9f6c22664c04e6fcbba3.zip
external_mesa3d-c1d35aece0afc2822d6d9f6c22664c04e6fcbba3.tar.gz
external_mesa3d-c1d35aece0afc2822d6d9f6c22664c04e6fcbba3.tar.bz2
svga: use pipe_sampler_view_release() in svga_cleanup_tss_binding()
Fixes a crash when the Redway3D Turbine demo exits. We've made this change in other places in the past. The root issue is texture objects are being shared by multiple contexts and sampler views get shared too. Sampler views have a context pointer and if that context gets deleted we may try to reference that context when finally deleting the sampler view. pipe_sampler_view_release() avoids this problem because it takes an explicit context. Reviewed-by: Zack Rusin <zackr@vmware.com>
Diffstat (limited to 'src/gallium/drivers/svga/svga_state_tss.c')
-rw-r--r--src/gallium/drivers/svga/svga_state_tss.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/svga/svga_state_tss.c b/src/gallium/drivers/svga/svga_state_tss.c
index 572eeab..861a0df 100644
--- a/src/gallium/drivers/svga/svga_state_tss.c
+++ b/src/gallium/drivers/svga/svga_state_tss.c
@@ -45,7 +45,7 @@ void svga_cleanup_tss_binding(struct svga_context *svga)
struct svga_hw_view_state *view = &svga->state.hw_draw.views[i];
svga_sampler_view_reference(&view->v, NULL);
- pipe_sampler_view_reference( &svga->curr.sampler_views[i], NULL );
+ pipe_sampler_view_release(&svga->pipe, &svga->curr.sampler_views[i]);
pipe_resource_reference( &view->texture, NULL );
view->dirty = 1;