From: Dave Airlie Date: Fri, 20 Feb 2015 03:58:18 +0000 (+1000) Subject: st/glsl_to_tgsi: fix ir_assignment hack doing bad things for doubles X-Git-Tag: upstream/17.1.0~18959 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=731b7c49bb78d6d1be25f9010af0087146de0b48;p=platform%2Fupstream%2Fmesa.git st/glsl_to_tgsi: fix ir_assignment hack doing bad things for doubles This hack for fixing gl_FragDepth apparantly caused a GLSL shader outputting a single double to try and output a dvec4, but we hadn't assigned outputs for the secondary bit. This avoids going into the hack code for scalar doubles. Reviewed-by: Ilia Mirkin Signed-off-by: Dave Airlie --- diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 93671ba..08957dc 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -2611,6 +2611,7 @@ glsl_to_tgsi_visitor::visit(ir_assignment *ir) assert(!ir->lhs->type->is_scalar() && !ir->lhs->type->is_vector()); l.writemask = WRITEMASK_XYZW; } else if (ir->lhs->type->is_scalar() && + !ir->lhs->type->is_double() && ir->lhs->variable_referenced()->data.mode == ir_var_shader_out) { /* FINISHME: This hack makes writing to gl_FragDepth, which lives in the * FINISHME: W component of fragment shader output zero, work correctly.