diff options
author | Marek Olšák <[email protected]> | 2014-10-16 23:19:59 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-10-16 23:31:20 +0200 |
commit | 833d698ad5d7dc7598b798653e1413f4379ec476 (patch) | |
tree | 7873ec2270c92ba66605dd951b0a201d5b75c5e9 /src/mesa/state_tracker/st_texture.c | |
parent | 63c6509ad2e2707cca0ff3ba6fbc5582c3e2eea5 (diff) |
st/mesa: use pipe_sampler_view_release for releasing sampler views
This fixes a crash when exiting Firefox. I have really no idea how Firefox
does it. It seems to involve multiple contexts and multithreading.
v2: added an XXX comment
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81680
Acked by Christian König.
Cc: 10.2 10.3 <[email protected]>
Tested-by: Benjamin Bellec <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_texture.c')
-rw-r--r-- | src/mesa/state_tracker/st_texture.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/state_tracker/st_texture.c b/src/mesa/state_tracker/st_texture.c index 5996b7d1b74..ada9841897f 100644 --- a/src/mesa/state_tracker/st_texture.c +++ b/src/mesa/state_tracker/st_texture.c @@ -519,12 +519,14 @@ st_texture_release_sampler_view(struct st_context *st, } void -st_texture_release_all_sampler_views(struct st_texture_object *stObj) +st_texture_release_all_sampler_views(struct st_context *st, + struct st_texture_object *stObj) { GLuint i; + /* XXX This should use sampler_views[i]->pipe, not st->pipe */ for (i = 0; i < stObj->num_sampler_views; ++i) - pipe_sampler_view_reference(&stObj->sampler_views[i], NULL); + pipe_sampler_view_release(st->pipe, &stObj->sampler_views[i]); } |