[Mesa-dev] [PATCH] llvmpipe: use pipe_sampler_view_release() to avoid segfault
Jonathan Liu
net147 at gmail.com
Sun Dec 15 17:24:55 PST 2013
This fixes another case of faulting when freeing a pipe_sampler_view
that belongs to a previously destroyed context.
Signed-off-by: Jonathan Liu <net147 at gmail.com>
---
src/gallium/drivers/llvmpipe/lp_state_sampler.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/gallium/drivers/llvmpipe/lp_state_sampler.c b/src/gallium/drivers/llvmpipe/lp_state_sampler.c
index 1d3db0f..ff498f7 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_sampler.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_sampler.c
@@ -136,6 +136,12 @@ llvmpipe_set_sampler_views(struct pipe_context *pipe,
/* set the new sampler views */
for (i = 0; i < num; i++) {
+ /* Note: we're using pipe_sampler_view_release() here to work around
+ * a possible crash when the old view belongs to another context that
+ * was already destroyed.
+ */
+ pipe_sampler_view_release(pipe,
+ &llvmpipe->sampler_views[shader][start + i]);
pipe_sampler_view_reference(&llvmpipe->sampler_views[shader][start + i],
views[i]);
}
--
1.8.5.1
More information about the mesa-dev
mailing list