On 01/04/16 22:45, Jason Ekstrand wrote: > On Thu, Mar 31, 2016 at 3:00 AM, Samuel Iglesias Gonsálvez < > sigles...@igalia.com> wrote: > >> From: Iago Toral Quiroga <ito...@igalia.com> >> >> Found while testing UBO loads in scenarios like this: >> >> (assign (x) (var_ref vec_ctor) >> (expression float d2f >> (expression double ubo_load (constant uint (0)) (constant uint >> (0))))) >> >> Without this patch, the src expression of d2f would be evaluated to a >> bitsize >> of 32, which is not correct and would hit an assert in nir_validate. >> --- >> src/compiler/nir/glsl_to_nir.cpp | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/src/compiler/nir/glsl_to_nir.cpp >> b/src/compiler/nir/glsl_to_nir.cpp >> index c77b430..8c75843 100644 >> --- a/src/compiler/nir/glsl_to_nir.cpp >> +++ b/src/compiler/nir/glsl_to_nir.cpp >> @@ -1190,6 +1190,7 @@ nir_visitor::evaluate_rvalue(ir_rvalue* ir) >> load_instr->dest.ssa.bit_size = >> glsl_get_bit_size(ir->type->base_type); >> } >> >> + this->result->bit_size = glsl_get_bit_size(ir->type->base_type); >> > > I don't think this is the correct solution. Make everything 32-bit and > then stomp it various places to fix bugs. We need to make every instance > if init_ssa_dest do the right thing (I would recommend doing a full > audit). In particular, add_instr probably needs a bit_size parameter. >
Right. I will do the audit. Thanks, Sam > >> return this->result; >> } >> >> -- >> 2.5.0 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev >> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev