From ba48f47ebf7f017db0507b92a3ca83e404dc586c Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Sat, 14 Jul 2012 16:23:42 +0200 Subject: r600g: consolidate code for setting sampler views and fix bugs in the process Issues fixed: - set_vs_sampler_views for evergreen is now properly implemented. - Added the missing inval_texture_cache call for evergreen. - have_depth_texture was sometimes incorrectly set to false on evergreen even if there were depth textures in other shader stages. To fix this, set it to true once and never set it to false again. It's stupid, but it matches the r600 code. The proper fix is left to another patch. - Optimizaton: The sampler views which aren't changed aren't updated. --- src/gallium/drivers/r600/r600_pipe.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/gallium/drivers/r600/r600_pipe.h') diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index 4688b62f2fb..fd11134567d 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -528,6 +528,11 @@ void r600_set_index_buffer(struct pipe_context *ctx, void r600_vertex_buffers_dirty(struct r600_context *rctx); void r600_set_vertex_buffers(struct pipe_context *ctx, unsigned count, const struct pipe_vertex_buffer *input); +void r600_set_sampler_views(struct r600_context *rctx, + struct r600_textures_info *dst, + unsigned count, + struct pipe_sampler_view **views, + void (*set_resource)(struct r600_context*, struct r600_pipe_resource_state*, unsigned)); void *r600_create_vertex_elements(struct pipe_context *ctx, unsigned count, const struct pipe_vertex_element *elements); -- cgit v1.2.3