summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-12-02 12:24:24 -0700
committerBrian Paul <brianp@vmware.com>2009-12-02 12:24:27 -0700
commitdebc0b6fa8ce110eb4febc376d8327336259742c (patch)
treea7555b5be461cd5c19e43e8ce572a815a0e032ea
parentd5e5909f171952bc15f43bc618238fc0699edc09 (diff)
cso: check if pipe_context::bind_vertex_sampler_states is non-null
Fixes segfaults upon exit when the CSO module is releasing its objects.
-rw-r--r--src/gallium/auxiliary/cso_cache/cso_context.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
index b6f7b883224..80bd0c91db0 100644
--- a/src/gallium/auxiliary/cso_cache/cso_context.c
+++ b/src/gallium/auxiliary/cso_cache/cso_context.c
@@ -260,7 +260,8 @@ void cso_release_all( struct cso_context *ctx )
ctx->pipe->bind_blend_state( ctx->pipe, NULL );
ctx->pipe->bind_rasterizer_state( ctx->pipe, NULL );
ctx->pipe->bind_fragment_sampler_states( ctx->pipe, 0, NULL );
- ctx->pipe->bind_vertex_sampler_states(ctx->pipe, 0, NULL);
+ if (ctx->pipe->bind_vertex_sampler_states)
+ ctx->pipe->bind_vertex_sampler_states(ctx->pipe, 0, NULL);
ctx->pipe->bind_depth_stencil_alpha_state( ctx->pipe, NULL );
ctx->pipe->bind_fs_state( ctx->pipe, NULL );
ctx->pipe->bind_vs_state( ctx->pipe, NULL );