Am 30.11.2012 19:08, schrieb jfons...@vmware.com: > From: José Fonseca <jfons...@vmware.com> > > This fixes the "Source and destination overlap in memcpy" valgrind > warnings. > --- > src/gallium/drivers/llvmpipe/lp_state_fs.c | 20 ++++++++------------ > 1 file changed, 8 insertions(+), 12 deletions(-) > > diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c > b/src/gallium/drivers/llvmpipe/lp_state_fs.c > index 6819d33..9b10800 100644 > --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c > +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c > @@ -1077,10 +1077,10 @@ convert_to_blend_type(struct gallivm_state *gallivm, > const struct util_format_description *src_fmt, > struct lp_type src_type, > struct lp_type dst_type, > - LLVMValueRef* src, > - unsigned num_srcs, > - LLVMValueRef* dst) > + LLVMValueRef* src, // and dst > + unsigned num_srcs) > { > + LLVMValueRef *dst = src; > LLVMBuilderRef builder = gallivm->builder; > struct lp_type blend_type; > struct lp_type mem_type; > @@ -1088,8 +1088,6 @@ convert_to_blend_type(struct gallivm_state *gallivm, > unsigned pixels = 16 / num_srcs; > bool is_arith; > > - memcpy(dst, src, sizeof(LLVMValueRef) * num_srcs); > - > lp_mem_type_from_format_desc(src_fmt, &mem_type); > lp_blend_type_from_format_desc(src_fmt, &blend_type); > > @@ -1179,10 +1177,10 @@ convert_from_blend_type(struct gallivm_state *gallivm, > const struct util_format_description *src_fmt, > struct lp_type src_type, > struct lp_type dst_type, > - LLVMValueRef* src, > - unsigned num_srcs, > - LLVMValueRef* dst) > + LLVMValueRef* src, // and dst > + unsigned num_srcs) > { > + LLVMValueRef* dst = src; > unsigned i, j, k; > struct lp_type mem_type; > struct lp_type blend_type; > @@ -1190,8 +1188,6 @@ convert_from_blend_type(struct gallivm_state *gallivm, > unsigned pixels = 16 / num_srcs; > bool is_arith; > > - memcpy(dst, src, sizeof(LLVMValueRef) * num_srcs); > - > lp_mem_type_from_format_desc(src_fmt, &mem_type); > lp_blend_type_from_format_desc(src_fmt, &blend_type); > > @@ -1646,7 +1642,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, > /* > * Blending > */ > - convert_to_blend_type(gallivm, out_format_desc, dst_type, row_type, dst, > src_count, dst); > + convert_to_blend_type(gallivm, out_format_desc, dst_type, row_type, dst, > src_count); > > for (i = 0; i < src_count; ++i) { > dst[i] = lp_build_blend_aos(gallivm, > @@ -1664,7 +1660,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm, > pad_inline ? 4 : dst_channels); > } > > - convert_from_blend_type(gallivm, out_format_desc, row_type, dst_type, > dst, src_count, dst); > + convert_from_blend_type(gallivm, out_format_desc, row_type, dst_type, > dst, src_count); > > /* Split the blend rows back to memory rows */ > if (dst_count > src_count) { >
Reviewed-by: Roland Scheidegger <srol...@vmware.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev