[Mesa-dev] [PATCH] radeonsi: fix 64-bit loads from LDS
Marek Olšák
maraeo at gmail.com
Wed Oct 19 21:17:07 UTC 2016
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
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