From 8bd4476010444642cff71e64146c91a484238dc2 Mon Sep 17 00:00:00 2001 From: Vadim Girlin Date: Tue, 29 Oct 2013 05:49:21 +0400 Subject: 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 Tested-by: Andreas Boll --- src/gallium/drivers/r600/sb/sb_valtable.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/gallium/drivers/r600') 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; } -- cgit v1.2.3