summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_blit.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2012-09-10 04:06:20 +0200
committerMarek Olšák <[email protected]>2012-09-13 20:18:44 +0200
commit3fe78594b1221358f4ba96072d952e33a7e54a76 (patch)
treecc693127cb02513bca3c205b1a1cb95755a46a0c /src/gallium/drivers/r600/r600_blit.c
parent6c86124157da86ced9f9574ec49480f4abbd7e8c (diff)
r600g: do fine-grained sampler state updates
Update only those sampler states which are changed in a shader stage, instead of always updating all sampler states in the shader stage. That requires keeping a bitmask of those states which are enabled, and those states which are dirty at a given point (subset of enabled states). This is similar to how sampler views, constant buffers, and vertex buffers are handled. Reviewed-by: Jerome Glisse <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_blit.c')
-rw-r--r--src/gallium/drivers/r600/r600_blit.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 072df143f13..584b7fc1806 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -79,8 +79,8 @@ static void r600_blitter_begin(struct pipe_context *ctx, enum r600_blitter_op op
if (op & R600_SAVE_TEXTURES) {
util_blitter_save_fragment_sampler_states(
- rctx->blitter, rctx->ps_samplers.n_samplers,
- (void**)rctx->ps_samplers.samplers);
+ rctx->blitter, util_last_bit(rctx->ps_samplers.states.enabled_mask),
+ (void**)rctx->ps_samplers.states.states);
util_blitter_save_fragment_sampler_views(
rctx->blitter, util_last_bit(rctx->ps_samplers.views.enabled_mask),