st/glsl_to_tgsi: fix st_src_reg_for_double constant.
authorDave Airlie <airlied@redhat.com>
Tue, 5 Jul 2016 00:26:14 +0000 (10:26 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 23 Aug 2016 01:14:03 +0000 (11:14 +1000)
This needs to set the src swizzle so it doesn't access the .zw
members ever when we are just emitting a 0 constant here.

This fixes:
vert-conversion-explicit-dvec3-bvec3.shader_test
and a bunch of other fp64 tests on softpipe and radeonsi.

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 5a9cadcdb2e4cf0694c9750e184d73c427fe89c4..50ff4231eabc7faf7d88374eb5dce647abf10122 100644 (file)
@@ -1133,7 +1133,7 @@ glsl_to_tgsi_visitor::st_src_reg_for_double(double val)
 
    memcpy(uval, &val, sizeof(uval));
    src.index = add_constant(src.file, uval, 1, GL_DOUBLE, &src.swizzle);
-
+   src.swizzle = MAKE_SWIZZLE4(SWIZZLE_X, SWIZZLE_Y, SWIZZLE_X, SWIZZLE_Y);
    return src;
 }