summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_pipe.h
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2014-06-18 02:46:49 +0200
committerMarek Olšák <[email protected]>2014-07-18 01:58:59 +0200
commitdd46841bc9685b48c972ebe5f5cf92770cf025fd (patch)
tree271fad13df6b5cc05ba96cab0ac78349de18cdd9 /src/gallium/drivers/radeonsi/si_pipe.h
parent2a7b57ad4269e7267922ff695a57b9a2ce413a06 (diff)
radeonsi: move sampler descriptors from IB to memory
Sampler descriptors are now represented by si_descriptors. This also adds support for fine-grained sampler state updates and the border color update is now isolated in a separate function. Border colors have been broken if texturing from multiple shader stages is used. This patch doesn't change that. BTW, blitting already makes use of fine-grained state updates. u_blitter uses 2 textures at most, so we only have to save 2. Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.h')
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h
index c95774d6f5e..901beb279a0 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.h
+++ b/src/gallium/drivers/radeonsi/si_pipe.h
@@ -63,11 +63,10 @@ struct si_cs_shader_state {
struct si_textures_info {
struct si_sampler_views views;
- struct si_pipe_sampler_state *samplers[SI_NUM_USER_SAMPLERS];
+ struct si_sampler_states states;
unsigned n_views;
uint32_t depth_texture_mask; /* which textures are depth */
uint32_t compressed_colortex_mask;
- unsigned n_samplers;
};
struct si_framebuffer {
@@ -102,6 +101,7 @@ struct si_context {
struct r600_atom *const_buffers[SI_NUM_SHADERS];
struct r600_atom *rw_buffers[SI_NUM_SHADERS];
struct r600_atom *sampler_views[SI_NUM_SHADERS];
+ struct r600_atom *sampler_states[SI_NUM_SHADERS];
/* Caches must be flushed after resource descriptors are
* updated in memory. */
struct r600_atom *cache_flush;