diff options
author | Brian Paul <[email protected]> | 2013-10-07 18:16:22 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2013-10-23 10:15:38 -0600 |
commit | a3ed98f7aa85636579a5696bf036ec13e5c9104a (patch) | |
tree | 104078a2a8b875e5ec7c5524e7797d46d109d7e0 /src/gallium/drivers/r600 | |
parent | b11fc226e6b106de8eb777a8e62c4f7303c66fbc (diff) |
gallium: new, unified pipe_context::set_sampler_views() function
The new function replaces four old functions: set_fragment/vertex/
geometry/compute_sampler_views().
Note: at this time, it's expected that the 'start' parameter will
always be zero.
Reviewed-by: Roland Scheidegger <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Tested-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_compute.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 5 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_state_common.c | 20 |
3 files changed, 12 insertions, 16 deletions
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index bcb8a390fcf..ea77f5eb89e 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -597,7 +597,7 @@ static void evergreen_set_compute_resources(struct pipe_context * ctx_, } } -static void evergreen_set_cs_sampler_view(struct pipe_context *ctx_, +void evergreen_set_cs_sampler_view(struct pipe_context *ctx_, unsigned start_slot, unsigned count, struct pipe_sampler_view **views) { @@ -848,7 +848,6 @@ void evergreen_init_compute_state_functions(struct r600_context *ctx) ctx->b.b.bind_compute_state = evergreen_bind_compute_state; // ctx->context.create_sampler_view = evergreen_compute_create_sampler_view; ctx->b.b.set_compute_resources = evergreen_set_compute_resources; - ctx->b.b.set_compute_sampler_views = evergreen_set_cs_sampler_view; ctx->b.b.set_global_binding = evergreen_set_global_binding; ctx->b.b.launch_grid = evergreen_launch_grid; diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index 0304d6a16a7..75a721cb99b 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -574,6 +574,11 @@ void compute_memory_pool_delete(struct compute_memory_pool* pool); struct compute_memory_pool* compute_memory_pool_new( struct r600_screen *rscreen); +/* evergreen_compute.c */ +void evergreen_set_cs_sampler_view(struct pipe_context *ctx_, + unsigned start_slot, unsigned count, + struct pipe_sampler_view **views); + /* evergreen_state.c */ struct pipe_sampler_view * evergreen_create_sampler_view_custom(struct pipe_context *ctx, diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index 482eb44a070..8f164bf1891 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -578,6 +578,11 @@ static void r600_set_sampler_views(struct pipe_context *pipe, unsigned shader, assert(start == 0); /* XXX fix below */ + if (shader == PIPE_SHADER_COMPUTE) { + evergreen_set_cs_sampler_view(pipe, start, count, views); + return; + } + remaining_mask = dst->views.enabled_mask & disable_mask; while (remaining_mask) { @@ -644,18 +649,6 @@ static void r600_set_sampler_views(struct pipe_context *pipe, unsigned shader, } } -static void r600_set_vs_sampler_views(struct pipe_context *ctx, unsigned count, - struct pipe_sampler_view **views) -{ - r600_set_sampler_views(ctx, PIPE_SHADER_VERTEX, 0, count, views); -} - -static void r600_set_ps_sampler_views(struct pipe_context *ctx, unsigned count, - struct pipe_sampler_view **views) -{ - r600_set_sampler_views(ctx, PIPE_SHADER_FRAGMENT, 0, count, views); -} - static void r600_set_viewport_states(struct pipe_context *ctx, unsigned start_slot, unsigned num_viewports, @@ -2100,8 +2093,7 @@ void r600_init_common_state_functions(struct r600_context *rctx) rctx->b.b.set_viewport_states = r600_set_viewport_states; rctx->b.b.set_vertex_buffers = r600_set_vertex_buffers; rctx->b.b.set_index_buffer = r600_set_index_buffer; - rctx->b.b.set_fragment_sampler_views = r600_set_ps_sampler_views; - rctx->b.b.set_vertex_sampler_views = r600_set_vs_sampler_views; + rctx->b.b.set_sampler_views = r600_set_sampler_views; rctx->b.b.sampler_view_destroy = r600_sampler_view_destroy; rctx->b.b.texture_barrier = r600_texture_barrier; rctx->b.b.set_stream_output_targets = r600_set_streamout_targets; |