On 28 January 2017 at 10:35, Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl> wrote: > Apparently the source is not an address but an offset, so we actually > need to use the base. Nice find!
Reviewed-by: Dave Airlie <airl...@redhat.com> > > Signed-off-by: Bas Nieuwenhuizen <ba...@google.com> > --- > src/amd/common/ac_nir_to_llvm.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c > index 26b87e8782b..72ae6eb0730 100644 > --- a/src/amd/common/ac_nir_to_llvm.c > +++ b/src/amd/common/ac_nir_to_llvm.c > @@ -1745,9 +1745,12 @@ static LLVMValueRef visit_vulkan_resource_index(struct > nir_to_llvm_context *ctx, > static LLVMValueRef visit_load_push_constant(struct nir_to_llvm_context *ctx, > nir_intrinsic_instr *instr) > { > - LLVMValueRef ptr; > + LLVMValueRef ptr, addr; > + > + addr = LLVMConstInt(ctx->i32, nir_intrinsic_base(instr), 0); > + addr = LLVMBuildAdd(ctx->builder, addr, get_src(ctx, instr->src[0]), > ""); > > - ptr = build_gep0(ctx, ctx->push_constants, get_src(ctx, > instr->src[0])); > + ptr = build_gep0(ctx, ctx->push_constants, addr); > ptr = cast_ptr(ctx, ptr, get_def_type(ctx, &instr->dest.ssa)); > > return LLVMBuildLoad(ctx->builder, ptr, ""); > -- > 2.11.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev