llvmpipe: kill off llvmpipe_variant_count
[mesa.git] / src / gallium / drivers / galahad / glhd_context.c
index ac666d45aa9f8c5bee96c742e349e50fa7e503cd..2e61e5924a67832d9d755d5aa83b228d5c58d51a 100644 (file)
@@ -74,7 +74,7 @@ galahad_context_create_query(struct pipe_context *_pipe,
    }
 
    if (query_type == PIPE_QUERY_TIME_ELAPSED &&
-      !pipe->screen->get_param(pipe->screen, PIPE_CAP_TIMER_QUERY)) {
+      !pipe->screen->get_param(pipe->screen, PIPE_CAP_QUERY_TIME_ELAPSED)) {
       glhd_error("Timer query requested but not supported");
    }
 
@@ -197,49 +197,9 @@ galahad_context_bind_sampler_states(struct pipe_context *_pipe,
          num_samplers, PIPE_MAX_SAMPLERS);
    }
 
-   switch (shader) {
-   case PIPE_SHADER_VERTEX:
-      pipe->bind_vertex_sampler_states(pipe, num_samplers, samplers);
-      break;
-   case PIPE_SHADER_FRAGMENT:
-      pipe->bind_fragment_sampler_states(pipe, num_samplers, samplers);
-      break;
-   case PIPE_SHADER_GEOMETRY:
-      pipe->bind_geometry_sampler_states(pipe, num_samplers, samplers);
-      break;
-   default:
-      assert(0);
-   }
-}
-
-static void
-galahad_context_bind_vertex_sampler_states(struct pipe_context *_pipe,
-                                           unsigned num_samplers,
-                                           void **samplers)
-{
-   galahad_context_bind_sampler_states(_pipe, PIPE_SHADER_VERTEX,
-                                       0, num_samplers, samplers);
+   pipe->bind_sampler_states(pipe, shader, start, num_samplers, samplers);
 }
 
-static void
-galahad_context_bind_fragment_sampler_states(struct pipe_context *_pipe,
-                                             unsigned num_samplers,
-                                             void **samplers)
-{
-   galahad_context_bind_sampler_states(_pipe, PIPE_SHADER_FRAGMENT,
-                                       0, num_samplers, samplers);
-}
-
-static void
-galahad_context_bind_geometry_sampler_states(struct pipe_context *_pipe,
-                                             unsigned num_samplers,
-                                             void **samplers)
-{
-   galahad_context_bind_sampler_states(_pipe, PIPE_SHADER_GEOMETRY,
-                                       0, num_samplers, samplers);
-}
-
-
 static void
 galahad_context_delete_sampler_state(struct pipe_context *_pipe,
                               void *sampler)
@@ -524,25 +484,29 @@ galahad_context_set_polygon_stipple(struct pipe_context *_pipe,
 }
 
 static void
-galahad_context_set_scissor_state(struct pipe_context *_pipe,
+galahad_context_set_scissor_states(struct pipe_context *_pipe,
+                                   unsigned start_slot,
+                                   unsigned num_scissors,
                            const struct pipe_scissor_state *scissor)
 {
    struct galahad_context *glhd_pipe = galahad_context(_pipe);
    struct pipe_context *pipe = glhd_pipe->pipe;
 
-   pipe->set_scissor_state(pipe,
-                           scissor);
+   pipe->set_scissor_states(pipe, start_slot, num_scissors,
+                            scissor);
 }
 
 static void
-galahad_context_set_viewport_state(struct pipe_context *_pipe,
+galahad_context_set_viewport_states(struct pipe_context *_pipe,
+                                    unsigned start_slot,
+                                    unsigned num_viewports,
                             const struct pipe_viewport_state *viewport)
 {
    struct galahad_context *glhd_pipe = galahad_context(_pipe);
    struct pipe_context *pipe = glhd_pipe->pipe;
 
-   pipe->set_viewport_state(pipe,
-                            viewport);
+   pipe->set_viewport_states(pipe, start_slot, num_viewports,
+                             viewport);
 }
 
 static void
@@ -554,59 +518,13 @@ galahad_context_set_sampler_views(struct pipe_context *_pipe,
 {
    struct galahad_context *glhd_pipe = galahad_context(_pipe);
    struct pipe_context *pipe = glhd_pipe->pipe;
-   struct pipe_sampler_view *unwrapped_views[PIPE_MAX_SAMPLERS];
-   struct pipe_sampler_view **views = NULL;
+   struct pipe_sampler_view *unwrapped_views[PIPE_MAX_SHADER_SAMPLER_VIEWS];
    unsigned i;
 
-   if (_views) {
-      for (i = 0; i < num; i++)
-         unwrapped_views[i] = galahad_sampler_view_unwrap(_views[i]);
-      for (; i < PIPE_MAX_SAMPLERS; i++)
-         unwrapped_views[i] = NULL;
-
-      views = unwrapped_views;
-   }
-
-   switch (shader) {
-   case PIPE_SHADER_VERTEX:
-      pipe->set_vertex_sampler_views(pipe, num, views);
-      break;
-   case PIPE_SHADER_FRAGMENT:
-      pipe->set_fragment_sampler_views(pipe, num, views);
-      break;
-   case PIPE_SHADER_GEOMETRY:
-      pipe->set_geometry_sampler_views(pipe, num, views);
-      break;
-   default:
-      assert(0);
-   }
-}
-
-static void
-galahad_context_set_vertex_sampler_views(struct pipe_context *_pipe,
-                                         unsigned num,
-                                         struct pipe_sampler_view **_views)
-{
-   galahad_context_set_sampler_views(_pipe, PIPE_SHADER_VERTEX,
-                                     0, num, _views);
-}
-
-static void
-galahad_context_set_fragment_sampler_views(struct pipe_context *_pipe,
-                                           unsigned num,
-                                           struct pipe_sampler_view **_views)
-{
-   galahad_context_set_sampler_views(_pipe, PIPE_SHADER_FRAGMENT,
-                                     0, num, _views);
-}
+   for (i = 0; i < num; i++)
+      unwrapped_views[i] = galahad_sampler_view_unwrap(_views[i]);
 
-static void
-galahad_context_set_geometry_sampler_views(struct pipe_context *_pipe,
-                                           unsigned num,
-                                           struct pipe_sampler_view **_views)
-{
-   galahad_context_set_sampler_views(_pipe, PIPE_SHADER_GEOMETRY,
-                                     0, num, _views);
+   pipe->set_sampler_views(pipe, shader, start, num, unwrapped_views);
 }
 
 static void
@@ -695,12 +613,12 @@ static INLINE void
 galahad_context_set_stream_output_targets(struct pipe_context *_pipe,
                                           unsigned num_targets,
                                           struct pipe_stream_output_target **tgs,
-                                          unsigned append_bitmask)
+                                          const unsigned *offsets)
 {
    struct galahad_context *glhd_pipe = galahad_context(_pipe);
    struct pipe_context *pipe = glhd_pipe->pipe;
 
-   pipe->set_stream_output_targets(pipe, num_targets, tgs, append_bitmask);
+   pipe->set_stream_output_targets(pipe, num_targets, tgs, offsets);
 }
 
 static void
@@ -778,6 +696,18 @@ galahad_context_blit(struct pipe_context *_pipe,
    pipe->blit(pipe, &info);
 }
 
+static void
+galahad_context_flush_resource(struct pipe_context *_pipe,
+                               struct pipe_resource *_res)
+{
+   struct galahad_context *glhd_pipe = galahad_context(_pipe);
+   struct galahad_resource *glhd_resource_res = galahad_resource(_res);
+   struct pipe_context *pipe = glhd_pipe->pipe;
+   struct pipe_resource *res = glhd_resource_res->resource;
+
+   pipe->flush_resource(pipe, res);
+}
+
 static void
 galahad_context_clear(struct pipe_context *_pipe,
                unsigned buffers,
@@ -843,13 +773,13 @@ galahad_context_clear_depth_stencil(struct pipe_context *_pipe,
 
 static void
 galahad_context_flush(struct pipe_context *_pipe,
-               struct pipe_fence_handle **fence)
+                      struct pipe_fence_handle **fence,
+                      unsigned flags)
 {
    struct galahad_context *glhd_pipe = galahad_context(_pipe);
    struct pipe_context *pipe = glhd_pipe->pipe;
 
-   pipe->flush(pipe,
-               fence);
+   pipe->flush(pipe, fence, flags);
 }
 
 static struct pipe_sampler_view *
@@ -1007,12 +937,13 @@ galahad_context_transfer_inline_write(struct pipe_context *_context,
 static void
 galahad_context_render_condition(struct pipe_context *_context,
                                  struct pipe_query *query,
+                                 boolean condition,
                                  uint mode)
 {
    struct galahad_context *glhd_context = galahad_context(_context);
    struct pipe_context *context = glhd_context->pipe;
 
-   context->render_condition(context, query, mode);
+   context->render_condition(context, query, condition, mode);
 }
 
 
@@ -1047,10 +978,7 @@ galahad_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
    GLHD_PIPE_INIT(bind_blend_state);
    GLHD_PIPE_INIT(delete_blend_state);
    GLHD_PIPE_INIT(create_sampler_state);
-   GLHD_PIPE_INIT(bind_fragment_sampler_states);
-   GLHD_PIPE_INIT(bind_vertex_sampler_states);
-   GLHD_PIPE_INIT(bind_geometry_sampler_states);
-   //GLHD_PIPE_INIT(bind_compute_sampler_states);
+   GLHD_PIPE_INIT(bind_sampler_states);
    GLHD_PIPE_INIT(delete_sampler_state);
    GLHD_PIPE_INIT(create_rasterizer_state);
    GLHD_PIPE_INIT(bind_rasterizer_state);
@@ -1077,12 +1005,9 @@ galahad_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
    GLHD_PIPE_INIT(set_constant_buffer);
    GLHD_PIPE_INIT(set_framebuffer_state);
    GLHD_PIPE_INIT(set_polygon_stipple);
-   GLHD_PIPE_INIT(set_scissor_state);
-   GLHD_PIPE_INIT(set_viewport_state);
-   GLHD_PIPE_INIT(set_fragment_sampler_views);
-   GLHD_PIPE_INIT(set_vertex_sampler_views);
-   GLHD_PIPE_INIT(set_geometry_sampler_views);
-   //GLHD_PIPE_INIT(set_compute_sampler_views);
+   GLHD_PIPE_INIT(set_scissor_states);
+   GLHD_PIPE_INIT(set_viewport_states);
+   GLHD_PIPE_INIT(set_sampler_views);
    //GLHD_PIPE_INIT(set_shader_resources);
    GLHD_PIPE_INIT(set_vertex_buffers);
    GLHD_PIPE_INIT(set_index_buffer);
@@ -1091,6 +1016,7 @@ galahad_context_create(struct pipe_screen *_screen, struct pipe_context *pipe)
    GLHD_PIPE_INIT(set_stream_output_targets);
    GLHD_PIPE_INIT(resource_copy_region);
    GLHD_PIPE_INIT(blit);
+   GLHD_PIPE_INIT(flush_resource);
    GLHD_PIPE_INIT(clear);
    GLHD_PIPE_INIT(clear_render_target);
    GLHD_PIPE_INIT(clear_depth_stencil);