diff options
author | Vadim Girlin <[email protected]> | 2013-10-29 05:49:21 +0400 |
---|---|---|
committer | Vadim Girlin <[email protected]> | 2013-10-29 05:49:21 +0400 |
commit | 8bd4476010444642cff71e64146c91a484238dc2 (patch) | |
tree | 9e1cffcb704dd016d7c80904eeb59a0947209bb5 | |
parent | 08bf52712e9dbd32ea3e4855c3446eba624fc890 (diff) |
r600g/sb: fix value::is_fixed()
This prevents unnecessary (and wrong) register allocation in the
scheduler for preloaded values in fixed registers.
Fixes interpolation-mixed.shader_test on rv770
(and probably on all other pre-evergreen chips).
Signed-off-by: Vadim Girlin <[email protected]>
Tested-by: Andreas Boll <[email protected]>
-rw-r--r-- | src/gallium/drivers/r600/sb/sb_valtable.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/sb/sb_valtable.cpp b/src/gallium/drivers/r600/sb/sb_valtable.cpp index 00aee66f25b..0d39e9c3f03 100644 --- a/src/gallium/drivers/r600/sb/sb_valtable.cpp +++ b/src/gallium/drivers/r600/sb/sb_valtable.cpp @@ -255,8 +255,8 @@ void value::set_prealloc() { bool value::is_fixed() { if (array && array->gpr) return true; - if (chunk) - return chunk->is_fixed(); + if (chunk && chunk->is_fixed()) + return true; return flags & VLF_FIXED; } |