mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-14 14:28:08 +02:00
radeonsi: handle doubles in lds load path.
This handles loading doubles from LDS properly.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Cc: "11.0 11.1" <mesa-stable@lists.fedoraproject.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit 8c9e40ac22)
This commit is contained in:
parent
09c4907da0
commit
fd7be2d07c
1 changed files with 8 additions and 0 deletions
|
|
@ -637,6 +637,14 @@ static LLVMValueRef lds_load(struct lp_build_tgsi_context *bld_base,
|
||||||
lp_build_const_int32(gallivm, swizzle));
|
lp_build_const_int32(gallivm, swizzle));
|
||||||
|
|
||||||
value = build_indexed_load(si_shader_ctx, si_shader_ctx->lds, dw_addr);
|
value = build_indexed_load(si_shader_ctx, si_shader_ctx->lds, dw_addr);
|
||||||
|
if (type == TGSI_TYPE_DOUBLE) {
|
||||||
|
LLVMValueRef value2;
|
||||||
|
dw_addr = lp_build_add(&bld_base->uint_bld, dw_addr,
|
||||||
|
lp_build_const_int32(gallivm, swizzle + 1));
|
||||||
|
value2 = build_indexed_load(si_shader_ctx, si_shader_ctx->lds, dw_addr);
|
||||||
|
return radeon_llvm_emit_fetch_double(bld_base, value, value2);
|
||||||
|
}
|
||||||
|
|
||||||
return LLVMBuildBitCast(gallivm->builder, value,
|
return LLVMBuildBitCast(gallivm->builder, value,
|
||||||
tgsi2llvmtype(bld_base, type), "");
|
tgsi2llvmtype(bld_base, type), "");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue