identity: implement pipe_context::bind_sampler_states()
authorBrian Paul <brianp@vmware.com>
Thu, 12 Sep 2013 21:07:33 +0000 (15:07 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 3 Oct 2013 20:05:26 +0000 (14:05 -0600)
src/gallium/drivers/identity/id_context.c

index 6cb7bdf..61c9e51 100644 (file)
@@ -168,21 +168,26 @@ identity_bind_sampler_states(struct pipe_context *_pipe,
    struct identity_context *id_pipe = identity_context(_pipe);
    struct pipe_context *pipe = id_pipe->pipe;
 
-   /* remove this when we have pipe->bind_sampler_states(..., start, ...) */
-   assert(start == 0);
-
-   switch (shader) {
-   case PIPE_SHADER_VERTEX:
-      pipe->bind_vertex_sampler_states(pipe, num_samplers, samplers);
-      break;
-   case PIPE_SHADER_GEOMETRY:
-      pipe->bind_geometry_sampler_states(pipe, num_samplers, samplers);
-      break;
-   case PIPE_SHADER_FRAGMENT:
-      pipe->bind_fragment_sampler_states(pipe, num_samplers, samplers);
-      break;
-   default:
-      debug_error("Unexpected shader in identity_bind_sampler_states()");
+   if (pipe->bind_sampler_states) {
+      pipe->bind_sampler_states(pipe, shader, start, num_samplers, samplers);
+   }
+   else {
+      /* remove this when we have pipe->bind_sampler_states(..., start, ...) */
+      assert(start == 0);
+
+      switch (shader) {
+      case PIPE_SHADER_VERTEX:
+         pipe->bind_vertex_sampler_states(pipe, num_samplers, samplers);
+         break;
+      case PIPE_SHADER_GEOMETRY:
+         pipe->bind_geometry_sampler_states(pipe, num_samplers, samplers);
+         break;
+      case PIPE_SHADER_FRAGMENT:
+         pipe->bind_fragment_sampler_states(pipe, num_samplers, samplers);
+         break;
+      default:
+         debug_error("Unexpected shader in identity_bind_sampler_states()");
+      }
    }
 }
 
@@ -901,6 +906,7 @@ identity_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
    id_pipe->base.bind_blend_state = identity_bind_blend_state;
    id_pipe->base.delete_blend_state = identity_delete_blend_state;
    id_pipe->base.create_sampler_state = identity_create_sampler_state;
+   id_pipe->base.bind_sampler_states = identity_bind_sampler_states;
    id_pipe->base.bind_fragment_sampler_states = identity_bind_fragment_sampler_states;
    id_pipe->base.bind_vertex_sampler_states = identity_bind_vertex_sampler_states;
    id_pipe->base.delete_sampler_state = identity_delete_sampler_state;