From: Vadim Girlin Date: Tue, 29 Oct 2013 01:49:21 +0000 (+0400) Subject: r600g/sb: fix value::is_fixed() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8bd4476010444642cff71e64146c91a484238dc2;p=mesa.git 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 --- 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; }