[Mesa-dev] [PATCH] radeonsi: fix 64-bit loads from LDS

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Wed Oct 19 19:59:13 UTC 2016


Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

On Wed, Oct 19, 2016 at 8:38 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> Fixes spec/arb_tessellation_shader/execution/dvec[23]-vs-tcs-tes, among
> others.
>
> Cc: mesa-stable at lists.freedesktop.org
> ---
>  src/gallium/drivers/radeonsi/si_shader.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
> index 6a42a8f..0ee760f 100644
> --- a/src/gallium/drivers/radeonsi/si_shader.c
> +++ b/src/gallium/drivers/radeonsi/si_shader.c
> @@ -904,21 +904,21 @@ static LLVMValueRef lds_load(struct lp_build_tgsi_context *bld_base,
>                                               TGSI_NUM_CHANNELS);
>         }
>
>         dw_addr = lp_build_add(&bld_base->uint_bld, dw_addr,
>                             lp_build_const_int32(gallivm, swizzle));
>
>         value = build_indexed_load(ctx, ctx->lds, dw_addr, false);
>         if (tgsi_type_is_64bit(type)) {
>                 LLVMValueRef value2;
>                 dw_addr = lp_build_add(&bld_base->uint_bld, dw_addr,
> -                                      lp_build_const_int32(gallivm, swizzle + 1));
> +                                      lp_build_const_int32(gallivm, 1));
>                 value2 = build_indexed_load(ctx, ctx->lds, dw_addr, false);
>                 return si_llvm_emit_fetch_64bit(bld_base, type, value, value2);
>         }
>
>         return LLVMBuildBitCast(gallivm->builder, value,
>                                 tgsi2llvmtype(bld_base, type), "");
>  }
>
>  /**
>   * Store to LDS.
> --
> 2.7.4
>
> _______________________________________________
> 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