diff options
author | Marek Olšák <[email protected]> | 2012-09-10 04:06:20 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-09-13 20:18:44 +0200 |
commit | 3fe78594b1221358f4ba96072d952e33a7e54a76 (patch) | |
tree | cc693127cb02513bca3c205b1a1cb95755a46a0c /src/gallium/drivers/r600/r600_blit.c | |
parent | 6c86124157da86ced9f9574ec49480f4abbd7e8c (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.c | 4 |
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), |