On Mon, Oct 21, 2013 at 10:02:12PM +0200, Vincent Lejeune wrote: Can you add an explanation to the commit messages for both patches about what was wrong with the old code?
Thanks, Tom > --- > src/gallium/drivers/r600/r600_llvm.c | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/src/gallium/drivers/r600/r600_llvm.c > b/src/gallium/drivers/r600/r600_llvm.c > index 34dd3ad..d7fa5f8 100644 > --- a/src/gallium/drivers/r600/r600_llvm.c > +++ b/src/gallium/drivers/r600/r600_llvm.c > @@ -427,6 +427,35 @@ static void llvm_emit_tex( > emit_data->output[0] = build_intrinsic(gallivm->builder, > "llvm.R600.load.texbuf", > emit_data->dst_type, > args, 2, LLVMReadNoneAttribute); > + if (ctx->chip_class >= EVERGREEN) > + return; > + ctx->uses_tex_buffers = true; > + LLVMDumpValue(emit_data->output[0]); > + emit_data->output[0] = > LLVMBuildBitCast(gallivm->builder, > + emit_data->output[0], > LLVMVectorType(bld_base->base.int_elem_type, 4), > + ""); > + LLVMValueRef Mask = llvm_load_const_buffer(bld_base, > + lp_build_const_int32(gallivm, 0), > + LLVM_R600_BUFFER_INFO_CONST_BUFFER); > + Mask = LLVMBuildBitCast(gallivm->builder, Mask, > + LLVMVectorType(bld_base->base.int_elem_type, > 4), ""); > + emit_data->output[0] = > lp_build_emit_llvm_binary(bld_base, TGSI_OPCODE_AND, > + emit_data->output[0], > + Mask); > + LLVMValueRef WComponent = > LLVMBuildExtractElement(gallivm->builder, > + emit_data->output[0], > lp_build_const_int32(gallivm, 3), ""); > + Mask = llvm_load_const_buffer(bld_base, > lp_build_const_int32(gallivm, 1), > + LLVM_R600_BUFFER_INFO_CONST_BUFFER); > + Mask = LLVMBuildExtractElement(gallivm->builder, Mask, > + lp_build_const_int32(gallivm, 0), ""); > + Mask = LLVMBuildBitCast(gallivm->builder, Mask, > + bld_base->base.int_elem_type, ""); > + WComponent = lp_build_emit_llvm_binary(bld_base, > TGSI_OPCODE_OR, > + WComponent, Mask); > + emit_data->output[0] = > LLVMBuildInsertElement(gallivm->builder, > + emit_data->output[0], WComponent, > lp_build_const_int32(gallivm, 3), ""); > + emit_data->output[0] = > LLVMBuildBitCast(gallivm->builder, > + emit_data->output[0], > LLVMVectorType(bld_base->base.elem_type, 4), ""); > } > return; > default: > -- > 1.8.3.1 > > _______________________________________________ > 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