util: use pipe_context::bind_sampler_states() if non-null

This commit is contained in:
Brian Paul 2013-09-12 15:06:33 -06:00
parent 27d500a844
commit bbc1fd8c80
1 changed files with 22 additions and 6 deletions

View File

@ -528,9 +528,14 @@ static void blitter_restore_textures(struct blitter_context_priv *ctx)
unsigned i;
/* Fragment sampler states. */
pipe->bind_fragment_sampler_states(pipe,
ctx->base.saved_num_sampler_states,
ctx->base.saved_sampler_states);
if (pipe->bind_sampler_states)
pipe->bind_sampler_states(pipe, PIPE_SHADER_FRAGMENT, 0,
ctx->base.saved_num_sampler_states,
ctx->base.saved_sampler_states);
else
pipe->bind_fragment_sampler_states(pipe,
ctx->base.saved_num_sampler_states,
ctx->base.saved_sampler_states);
ctx->base.saved_num_sampler_states = ~0;
/* Fragment sampler views. */
@ -1309,7 +1314,10 @@ void util_blitter_blit_generic(struct blitter_context *blitter,
views[1] = pipe->create_sampler_view(pipe, src->texture, &templ);
pipe->set_fragment_sampler_views(pipe, 2, views);
pipe->bind_fragment_sampler_states(pipe, 2, samplers);
if (pipe->bind_sampler_states)
pipe->bind_sampler_states(pipe, PIPE_SHADER_FRAGMENT, 0, 2, samplers);
else
pipe->bind_fragment_sampler_states(pipe, 2, samplers);
pipe_sampler_view_reference(&views[1], NULL);
} else if (blit_stencil) {
@ -1324,12 +1332,20 @@ void util_blitter_blit_generic(struct blitter_context *blitter,
view = pipe->create_sampler_view(pipe, src->texture, &templ);
pipe->set_fragment_sampler_views(pipe, 1, &view);
pipe->bind_fragment_sampler_states(pipe, 1, &sampler_state);
if (pipe->bind_sampler_states)
pipe->bind_sampler_states(pipe, PIPE_SHADER_FRAGMENT,
0, 1, &sampler_state);
else
pipe->bind_fragment_sampler_states(pipe, 1, &sampler_state);
pipe_sampler_view_reference(&view, NULL);
} else {
pipe->set_fragment_sampler_views(pipe, 1, &src);
pipe->bind_fragment_sampler_states(pipe, 1, &sampler_state);
if (pipe->bind_sampler_states)
pipe->bind_sampler_states(pipe, PIPE_SHADER_FRAGMENT,
0, 1, &sampler_state);
else
pipe->bind_fragment_sampler_states(pipe, 1, &sampler_state);
}
pipe->bind_vertex_elements_state(pipe, ctx->velem_state);