r600g: do fine-grained sampler state updates
authorMarek Olšák <maraeo@gmail.com>
Mon, 10 Sep 2012 02:06:20 +0000 (04:06 +0200)
committerMarek Olšák <maraeo@gmail.com>
Thu, 13 Sep 2012 18:18:44 +0000 (20:18 +0200)
commit3fe78594b1221358f4ba96072d952e33a7e54a76
treecc693127cb02513bca3c205b1a1cb95755a46a0c
parent6c86124157da86ced9f9574ec49480f4abbd7e8c
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 <jglisse@redhat.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_state_common.c