diff options
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r-- | src/gallium/auxiliary/cso_cache/cso_context.c | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c index 60c9a9673d5..95df28e9248 100644 --- a/src/gallium/auxiliary/cso_cache/cso_context.c +++ b/src/gallium/auxiliary/cso_cache/cso_context.c @@ -305,7 +305,7 @@ void cso_release_all( struct cso_context *ctx ) ctx->pipe->bind_blend_state( ctx->pipe, NULL ); ctx->pipe->bind_rasterizer_state( ctx->pipe, NULL ); - if (ctx->pipe->bind_sampler_states) { + { static void *zeros[PIPE_MAX_SAMPLERS] = { NULL }; struct pipe_screen *scr = ctx->pipe->screen; unsigned sh; @@ -318,11 +318,6 @@ void cso_release_all( struct cso_context *ctx ) } } } - else { - ctx->pipe->bind_fragment_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 ); @@ -1096,31 +1091,8 @@ single_sampler_done(struct cso_context *ctx, unsigned shader_stage) info->nr_samplers * sizeof(void *)); info->hw.nr_samplers = info->nr_samplers; - if (ctx->pipe->bind_sampler_states) { - ctx->pipe->bind_sampler_states(ctx->pipe, shader_stage, 0, - info->nr_samplers, info->samplers); - } - else { - switch (shader_stage) { - case PIPE_SHADER_FRAGMENT: - ctx->pipe->bind_fragment_sampler_states(ctx->pipe, - info->nr_samplers, - info->samplers); - break; - case PIPE_SHADER_VERTEX: - ctx->pipe->bind_vertex_sampler_states(ctx->pipe, - info->nr_samplers, - info->samplers); - break; - case PIPE_SHADER_GEOMETRY: - ctx->pipe->bind_geometry_sampler_states(ctx->pipe, - info->nr_samplers, - info->samplers); - break; - default: - assert(!"bad shader type in single_sampler_done()"); - } - } + ctx->pipe->bind_sampler_states(ctx->pipe, shader_stage, 0, + info->nr_samplers, info->samplers); } } |