On Tue, Dec 04, 2012 at 07:03:48PM +0100, Michel Dänzer wrote: > From: Michel Dänzer <michel.daen...@amd.com> > > To be used by radeonsi. >
For both patches: Reviewed-by: Tom Stellard <thomas.stell...@amd.com> > Signed-off-by: Michel Dänzer <michel.daen...@amd.com> > --- > src/gallium/drivers/radeon/radeon_llvm.h | 3 +++ > src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 18 ++++++++++-------- > 2 files changed, 13 insertions(+), 8 deletions(-) > > diff --git a/src/gallium/drivers/radeon/radeon_llvm.h > b/src/gallium/drivers/radeon/radeon_llvm.h > index 61975c4..61f3772 100644 > --- a/src/gallium/drivers/radeon/radeon_llvm.h > +++ b/src/gallium/drivers/radeon/radeon_llvm.h > @@ -152,6 +152,9 @@ static inline LLVMValueRef bitcast( > } > > > +void radeon_llvm_emit_prepare_cube_coords(struct lp_build_tgsi_context * > bld_base, > + LLVMValueRef *arg, unsigned > target); > + > void radeon_llvm_context_init(struct radeon_llvm_context * ctx); > > void radeon_llvm_dispose(struct radeon_llvm_context * ctx); > diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c > b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c > index 5e3d6c2..46abb2b 100644 > --- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c > +++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c > @@ -514,11 +514,12 @@ static void kil_emit( > } > > > -static void emit_prepare_cube_coords( > +void radeon_llvm_emit_prepare_cube_coords( > struct lp_build_tgsi_context * bld_base, > - struct lp_build_emit_data * emit_data) > + LLVMValueRef *arg, > + unsigned target) > { > - boolean shadowcube = (emit_data->inst->Texture.Texture == > TGSI_TEXTURE_SHADOWCUBE); > + boolean shadowcube = (target == TGSI_TEXTURE_SHADOWCUBE); > struct gallivm_state * gallivm = bld_base->base.gallivm; > LLVMBuilderRef builder = gallivm->builder; > LLVMTypeRef type = bld_base->base.elem_type; > @@ -528,7 +529,7 @@ static void emit_prepare_cube_coords( > > LLVMValueRef v = build_intrinsic(builder, "llvm.AMDGPU.cube", > LLVMVectorType(type, 4), > - &emit_data->args[0],1, LLVMReadNoneAttribute); > + arg, 1, LLVMReadNoneAttribute); > > /* save src.w for shadow cube */ > cnt = shadowcube ? 3 : 4; > @@ -560,8 +561,7 @@ static void emit_prepare_cube_coords( > coords[1] = coords[0]; > coords[0] = coords[3]; > > - emit_data->args[0] = lp_build_gather_values(bld_base->base.gallivm, > - coords, 4); > + *arg = lp_build_gather_values(bld_base->base.gallivm, coords, 4); > } > > static void txd_fetch_args( > @@ -610,7 +610,8 @@ static void txp_fetch_args( > if ((inst->Texture.Texture == TGSI_TEXTURE_CUBE || > inst->Texture.Texture == TGSI_TEXTURE_SHADOWCUBE) && > inst->Instruction.Opcode != TGSI_OPCODE_TXQ) { > - emit_prepare_cube_coords(bld_base, emit_data); > + radeon_llvm_emit_prepare_cube_coords(bld_base, > &emit_data->args[0], > + inst->Texture.Texture); > } > } > > @@ -642,7 +643,8 @@ static void tex_fetch_args( > if ((inst->Texture.Texture == TGSI_TEXTURE_CUBE || > inst->Texture.Texture == TGSI_TEXTURE_SHADOWCUBE) && > inst->Instruction.Opcode != TGSI_OPCODE_TXQ) { > - emit_prepare_cube_coords(bld_base, emit_data); > + radeon_llvm_emit_prepare_cube_coords(bld_base, > &emit_data->args[0], > + inst->Texture.Texture); > } > } > > -- > 1.7.10.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev