summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600
diff options
context:
space:
mode:
authorVadim Girlin <vadimgirlin@gmail.com>2013-10-29 05:49:21 +0400
committerVadim Girlin <vadimgirlin@gmail.com>2013-10-29 05:49:21 +0400
commit8bd4476010444642cff71e64146c91a484238dc2 (patch)
tree9e1cffcb704dd016d7c80904eeb59a0947209bb5 /src/gallium/drivers/r600
parent08bf52712e9dbd32ea3e4855c3446eba624fc890 (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 <vadimgirlin@gmail.com> Tested-by: Andreas Boll <andreas.boll.dev@gmail.com>
Diffstat (limited to 'src/gallium/drivers/r600')
-rw-r--r--src/gallium/drivers/r600/sb/sb_valtable.cpp4
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;
}