From: Vadim Girlin Date: Tue, 29 Oct 2013 01:49:21 +0000 (+0400) Subject: r600g/sb: fix value::is_fixed() X-Git-Tag: upstream/10.0.5~553 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8bd4476010444642cff71e64146c91a484238dc2;p=platform%2Fupstream%2Fmesa.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 00aee66..0d39e9c 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; }