[Mesa-dev] [PATCH] st/glsl_to_tgsi: fix st_src_reg_for_double constant.

Ilia Mirkin imirkin at alum.mit.edu
Tue Jul 5 02:33:33 UTC 2016


float gets .xyzw and seems to do just fine. How/why is float/int/etc
different from double?

On Mon, Jul 4, 2016 at 8:27 PM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> 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.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index 197b3af..b29cd96 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -1134,7 +1134,7 @@ glsl_to_tgsi_visitor::st_src_reg_for_double(double val)
>     uval[0].u = *(uint32_t *)&val;
>     uval[1].u = *(((uint32_t *)&val) + 1);
>     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;
>  }
>
> --
> 2.5.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list