st/glsl_to_tgsi: fix block copies of arrays of doubles
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Sun, 16 Oct 2016 15:33:51 +0000 (17:33 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 20 Oct 2016 08:30:00 +0000 (10:30 +0200)
Set the type of the left-hand side to the same as the right-hand side,
so that when the base type is double, the writemask of the MOV instruction
is properly fixed up.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: 13.0 <mesa-stable@lists.freedesktop.org>
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 98ebe540d8ea06310094e80a2933c5312c87ce85..562587ee58cbadc0c2430184becb525c5901c499 100644 (file)
@@ -2880,6 +2880,7 @@ glsl_to_tgsi_visitor::emit_block_mov(ir_assignment *ir, const struct glsl_type *
 
    assert(type->is_scalar() || type->is_vector());
 
+   l->type = type->base_type;
    r->type = type->base_type;
    if (cond) {
       st_src_reg l_src = st_src_reg(*l);