From: Eric Anholt Date: Wed, 21 Jan 2015 23:32:48 +0000 (-0800) Subject: nir: Fix setup of constant bool initializers. X-Git-Tag: android-x86-4.4-r3~664 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=fc6938d23e769497fd2acba7da0b59935ec9f1e4;p=android-x86%2Fexternal-mesa.git nir: Fix setup of constant bool initializers. brw_fs_nir has only seen scalar bools so far, thanks to vector splitting, and the ralloc of in glsl_to_nir.cpp will *usually* get you a 0-filled chunk of memory, so reading too large of a value will usually get you the right bool value. But once we start doing vector bools in a few commits, we end up getting bad values. Reviewed-by: Jason Ekstrand --- diff --git a/src/glsl/nir/nir_lower_vars_to_ssa.c b/src/glsl/nir/nir_lower_vars_to_ssa.c index 168a02595fc..8af75302986 100644 --- a/src/glsl/nir/nir_lower_vars_to_ssa.c +++ b/src/glsl/nir/nir_lower_vars_to_ssa.c @@ -600,7 +600,7 @@ get_const_initializer_load(const nir_deref_var *deref, load->value.u[i] = constant->value.u[matrix_offset + i]; break; case GLSL_TYPE_BOOL: - load->value.u[i] = constant->value.u[matrix_offset + i] ? + load->value.u[i] = constant->value.b[matrix_offset + i] ? NIR_TRUE : NIR_FALSE; break; default: