diff options
author | Vadim Girlin <[email protected]> | 2012-06-11 13:11:47 +0400 |
---|---|---|
committer | Vadim Girlin <[email protected]> | 2012-06-27 02:06:55 +0400 |
commit | 4acf71f01ea1edb253cd38cc059d4af1a2a40bf4 (patch) | |
tree | f735a384fda706b02f0c12fb3e391e5496490c26 /src/gallium/drivers/r600/r600_shader.h | |
parent | 55a89889ba8b9e58fdccf9d363d22aac93ba1281 (diff) |
r600g: cache shader variants instead of rebuilding v3
Shader variants are stored in the list, the key for lookup is based on the
states that require different hw shaders - currently it's rctx->two_side (all
gpus) and rctx->nr_cbufs (evergreen/cayman, when writes_all property is set).
v2:
- use simple list instead of keymap as suggested by Marek on irc
- call r600_adjust_gprs from r600_bind_vs_shader for r6xx/r7xx
(r600_shader_select isn't used for vertex shaders currently)
v3:
- fix call to r600_adjust_gprs - do it after updating current shader
Improves performance for some apps, e.g. FlightGear -
see https://bugs.freedesktop.org/show_bug.cgi?id=50360
Signed-off-by: Vadim Girlin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_shader.h')
0 files changed, 0 insertions, 0 deletions