util: use pipe_context::bind_sampler_states() if non-null
authorBrian Paul <brianp@vmware.com>
Thu, 12 Sep 2013 21:06:33 +0000 (15:06 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 3 Oct 2013 20:05:26 +0000 (14:05 -0600)
src/gallium/auxiliary/util/u_blitter.c

index be839d4390eb521329a19b305c0a9692a71e3421..456d65c99d2b3f96764dfd8e2b8d240dea149149 100644 (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);