rb_pipe->draw_blocked |= flag;
} else if ((rb_pipe->draw_rule.blocker & flag) &&
(rb_pipe->draw_blocker & RBUG_BLOCK_RULE)) {
- int k;
+ unsigned k;
boolean block = FALSE;
unsigned sh;
}
static void
-rbug_bind_fragment_sampler_states(struct pipe_context *_pipe,
- unsigned num_samplers,
- void **samplers)
+rbug_bind_sampler_states(struct pipe_context *_pipe, unsigned shader,
+ unsigned start, unsigned count,
+ void **samplers)
{
struct rbug_context *rb_pipe = rbug_context(_pipe);
struct pipe_context *pipe = rb_pipe->pipe;
pipe_mutex_lock(rb_pipe->call_mutex);
- pipe->bind_fragment_sampler_states(pipe,
- num_samplers,
- samplers);
- pipe_mutex_unlock(rb_pipe->call_mutex);
-}
-
-static void
-rbug_bind_vertex_sampler_states(struct pipe_context *_pipe,
- unsigned num_samplers,
- void **samplers)
-{
- struct rbug_context *rb_pipe = rbug_context(_pipe);
- struct pipe_context *pipe = rb_pipe->pipe;
-
- pipe_mutex_lock(rb_pipe->call_mutex);
- pipe->bind_vertex_sampler_states(pipe,
- num_samplers,
- samplers);
+ pipe->bind_sampler_states(pipe, shader, start, count, samplers);
pipe_mutex_unlock(rb_pipe->call_mutex);
}
}
static void
-rbug_set_scissor_state(struct pipe_context *_pipe,
- const struct pipe_scissor_state *scissor)
+rbug_set_scissor_states(struct pipe_context *_pipe,
+ unsigned start_slot,
+ unsigned num_scissors,
+ const struct pipe_scissor_state *scissor)
{
struct rbug_context *rb_pipe = rbug_context(_pipe);
struct pipe_context *pipe = rb_pipe->pipe;
pipe_mutex_lock(rb_pipe->call_mutex);
- pipe->set_scissor_state(pipe,
- scissor);
+ pipe->set_scissor_states(pipe, start_slot, num_scissors, scissor);
pipe_mutex_unlock(rb_pipe->call_mutex);
}
static void
-rbug_set_viewport_state(struct pipe_context *_pipe,
- const struct pipe_viewport_state *viewport)
+rbug_set_viewport_states(struct pipe_context *_pipe,
+ unsigned start_slot,
+ unsigned num_viewports,
+ const struct pipe_viewport_state *viewport)
{
struct rbug_context *rb_pipe = rbug_context(_pipe);
struct pipe_context *pipe = rb_pipe->pipe;
pipe_mutex_lock(rb_pipe->call_mutex);
- pipe->set_viewport_state(pipe,
- viewport);
+ pipe->set_viewport_states(pipe, start_slot, num_viewports, viewport);
pipe_mutex_unlock(rb_pipe->call_mutex);
}
{
struct rbug_context *rb_pipe = rbug_context(_pipe);
struct pipe_context *pipe = rb_pipe->pipe;
- struct pipe_sampler_view *unwrapped_views[PIPE_MAX_SAMPLERS];
+ struct pipe_sampler_view *unwrapped_views[PIPE_MAX_SHADER_SAMPLER_VIEWS];
struct pipe_sampler_view **views = NULL;
unsigned i;
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;
- default:
- assert(0);
- }
+ pipe->set_sampler_views(pipe, shader, start, num, views);
pipe_mutex_unlock(rb_pipe->call_mutex);
}
-static void
-rbug_set_vertex_sampler_views(struct pipe_context *_pipe,
- unsigned num,
- struct pipe_sampler_view **_views)
-{
- rbug_set_sampler_views(_pipe, PIPE_SHADER_VERTEX, 0, num, _views);
-}
-
-static void
-rbug_set_fragment_sampler_views(struct pipe_context *_pipe,
- unsigned num,
- struct pipe_sampler_view **_views)
-{
- rbug_set_sampler_views(_pipe, PIPE_SHADER_FRAGMENT, 0, num, _views);
-}
-
static void
rbug_set_vertex_buffers(struct pipe_context *_pipe,
unsigned start_slot, unsigned num_buffers,
pipe_mutex_unlock(rb_pipe->call_mutex);
}
+static void
+rbug_flush_resource(struct pipe_context *_pipe,
+ struct pipe_resource *_res)
+{
+ struct rbug_context *rb_pipe = rbug_context(_pipe);
+ struct rbug_resource *rb_resource_res = rbug_resource(_res);
+ struct pipe_context *pipe = rb_pipe->pipe;
+ struct pipe_resource *res = rb_resource_res->resource;
+
+ pipe_mutex_lock(rb_pipe->call_mutex);
+ pipe->flush_resource(pipe, res);
+ pipe_mutex_unlock(rb_pipe->call_mutex);
+}
+
static void
rbug_clear(struct pipe_context *_pipe,
unsigned buffers,
static void
rbug_flush(struct pipe_context *_pipe,
- struct pipe_fence_handle **fence)
+ struct pipe_fence_handle **fence,
+ unsigned flags)
{
struct rbug_context *rb_pipe = rbug_context(_pipe);
struct pipe_context *pipe = rb_pipe->pipe;
pipe_mutex_lock(rb_pipe->call_mutex);
- pipe->flush(pipe,
- fence);
+ pipe->flush(pipe, fence, flags);
pipe_mutex_unlock(rb_pipe->call_mutex);
}
rb_pipe->base.bind_blend_state = rbug_bind_blend_state;
rb_pipe->base.delete_blend_state = rbug_delete_blend_state;
rb_pipe->base.create_sampler_state = rbug_create_sampler_state;
- rb_pipe->base.bind_fragment_sampler_states = rbug_bind_fragment_sampler_states;
- rb_pipe->base.bind_vertex_sampler_states = rbug_bind_vertex_sampler_states;
+ rb_pipe->base.bind_sampler_states = rbug_bind_sampler_states;
rb_pipe->base.delete_sampler_state = rbug_delete_sampler_state;
rb_pipe->base.create_rasterizer_state = rbug_create_rasterizer_state;
rb_pipe->base.bind_rasterizer_state = rbug_bind_rasterizer_state;
rb_pipe->base.set_constant_buffer = rbug_set_constant_buffer;
rb_pipe->base.set_framebuffer_state = rbug_set_framebuffer_state;
rb_pipe->base.set_polygon_stipple = rbug_set_polygon_stipple;
- rb_pipe->base.set_scissor_state = rbug_set_scissor_state;
- rb_pipe->base.set_viewport_state = rbug_set_viewport_state;
- rb_pipe->base.set_fragment_sampler_views = rbug_set_fragment_sampler_views;
- rb_pipe->base.set_vertex_sampler_views = rbug_set_vertex_sampler_views;
+ rb_pipe->base.set_scissor_states = rbug_set_scissor_states;
+ rb_pipe->base.set_viewport_states = rbug_set_viewport_states;
+ rb_pipe->base.set_sampler_views = rbug_set_sampler_views;
rb_pipe->base.set_vertex_buffers = rbug_set_vertex_buffers;
rb_pipe->base.set_index_buffer = rbug_set_index_buffer;
rb_pipe->base.set_sample_mask = rbug_set_sample_mask;
rb_pipe->base.resource_copy_region = rbug_resource_copy_region;
+ rb_pipe->base.flush_resource = rbug_flush_resource;
rb_pipe->base.clear = rbug_clear;
rb_pipe->base.clear_render_target = rbug_clear_render_target;
rb_pipe->base.clear_depth_stencil = rbug_clear_depth_stencil;