diff options
author | Marek Olšák <[email protected]> | 2014-06-18 02:46:49 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-07-18 01:58:59 +0200 |
commit | dd46841bc9685b48c972ebe5f5cf92770cf025fd (patch) | |
tree | 271fad13df6b5cc05ba96cab0ac78349de18cdd9 /src/gallium/drivers/radeonsi/si_pipe.h | |
parent | 2a7b57ad4269e7267922ff695a57b9a2ce413a06 (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.h | 4 |
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; |