On Tue, Mar 05, 2013 at 03:27:19PM +0100, Christian König wrote: > From: Christian König <christian.koe...@amd.com> > > Signed-off-by: Christian König <christian.koe...@amd.com>
This series has my r-b, but I'd like to test it on r600, before you push it. -Tom > --- > src/gallium/drivers/radeonsi/radeonsi_shader.c | 31 > +++++++++--------------- > 1 file changed, 12 insertions(+), 19 deletions(-) > > diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c > b/src/gallium/drivers/radeonsi/radeonsi_shader.c > index 7922928..958d3a3 100644 > --- a/src/gallium/drivers/radeonsi/radeonsi_shader.c > +++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c > @@ -84,10 +84,9 @@ static struct si_shader_context * si_shader_context( > > enum sgpr_type { > SGPR_CONST_PTR_F32, > - SGPR_CONST_PTR_V4I32, > - SGPR_CONST_PTR_V8I32, > - SGPR_I32, > - SGPR_I64 > + SGPR_CONST_PTR_V16I8, > + SGPR_CONST_PTR_V32I8, > + SGPR_I32 > }; > > /** > @@ -149,22 +148,17 @@ static LLVMValueRef use_sgpr( > ret_type = LLVMInt32TypeInContext(gallivm->context); > break; > > - case SGPR_I64: > + case SGPR_CONST_PTR_V16I8: > assert(sgpr % 2 == 0); > - ret_type= LLVMInt64TypeInContext(gallivm->context); > - break; > - > - case SGPR_CONST_PTR_V4I32: > - assert(sgpr % 2 == 0); > - ret_type = LLVMInt32TypeInContext(gallivm->context); > - ret_type = LLVMVectorType(ret_type, 4); > + ret_type = LLVMInt8TypeInContext(gallivm->context); > + ret_type = LLVMVectorType(ret_type, 16); > ret_type = LLVMPointerType(ret_type, CONST_ADDR_SPACE); > break; > > - case SGPR_CONST_PTR_V8I32: > + case SGPR_CONST_PTR_V32I8: > assert(sgpr % 2 == 0); > - ret_type = LLVMInt32TypeInContext(gallivm->context); > - ret_type = LLVMVectorType(ret_type, 8); > + ret_type = LLVMInt8TypeInContext(gallivm->context); > + ret_type = LLVMVectorType(ret_type, 32); > ret_type = LLVMPointerType(ret_type, CONST_ADDR_SPACE); > break; > > @@ -197,7 +191,7 @@ static void declare_input_vs( > unsigned chan; > > /* Load the T list */ > - t_list_ptr = use_sgpr(base->gallivm, SGPR_CONST_PTR_V4I32, > SI_SGPR_VERTEX_BUFFER); > + t_list_ptr = use_sgpr(base->gallivm, SGPR_CONST_PTR_V16I8, > SI_SGPR_VERTEX_BUFFER); > > t_offset = lp_build_const_int32(base->gallivm, input_index); > > @@ -478,7 +472,6 @@ static void si_llvm_init_export_args(struct > lp_build_tgsi_context *bld_base, > int cbuf = target - V_008DFC_SQ_EXP_MRT; > > if (cbuf >= 0 && cbuf < 8) { > - struct r600_context *rctx = si_shader_ctx->rctx; > compressed = (si_shader_ctx->key.export_16bpc >> cbuf) > & 0x1; > > if (compressed) > @@ -945,14 +938,14 @@ static void tex_fetch_args( > emit_data->args[1] = lp_build_gather_values(gallivm, address, count); > > /* Resource */ > - ptr = use_sgpr(bld_base->base.gallivm, SGPR_CONST_PTR_V8I32, > SI_SGPR_RESOURCE); > + ptr = use_sgpr(bld_base->base.gallivm, SGPR_CONST_PTR_V32I8, > SI_SGPR_RESOURCE); > offset = lp_build_const_int32(bld_base->base.gallivm, > emit_data->inst->Src[1].Register.Index); > emit_data->args[2] = build_indexed_load(bld_base->base.gallivm, > ptr, offset); > > /* Sampler */ > - ptr = use_sgpr(bld_base->base.gallivm, SGPR_CONST_PTR_V4I32, > SI_SGPR_SAMPLER); > + ptr = use_sgpr(bld_base->base.gallivm, SGPR_CONST_PTR_V16I8, > SI_SGPR_SAMPLER); > offset = lp_build_const_int32(bld_base->base.gallivm, > emit_data->inst->Src[1].Register.Index); > emit_data->args[3] = build_indexed_load(bld_base->base.gallivm, > -- > 1.7.9.5 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev