From: Christian König <christian.koe...@amd.com> Signed-off-by: Christian König <christian.koe...@amd.com> --- 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