r600g: move SPI setup to PS setup
authorVadim Girlin <vadimgirlin@gmail.com>
Fri, 4 Nov 2011 17:24:03 +0000 (21:24 +0400)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 5 Nov 2011 21:23:29 +0000 (17:23 -0400)
commite532c710c60f0895e32af6562ac2855aa7d5eb63
tree3356f91b417695a4da1a84d8348df1b923e28fd4
parent5b27b63de64167a84a03d820550e56c4b7bbc69d
r600g: move SPI setup to PS setup

SPI semantic indices for PS/VS are now static, so we don't
need to update spi config for every shaders combination. We can move
the functionality of r600_spi_update to r600(evergreen)_pipe_shader_ps.

Flatshade state is now controlled by the global FLAT_SHADE_ENA flag
instead of updating FLAT_SHADE for all inputs.

Sprite coord still requires the update of spi setup when
sprite_coord_enable is first changed from zero (enabled), and then
only when it's changed to other non-zero value (enabled for other input).
Change to zero (disabling) and back to the same value is handled via
global SPRITE_COORD_ENA.

New field "sprite_coord_enable" added to "struct r600_pipe_shader"
to track current state for the pixel shader. It's checked in the
r600_update_derived_state.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_state_common.c