On Sunday, October 8, 2017 9:44:34 AM PDT Karol Herbst wrote: > thanks for improving that Patch for me. Currently a bit occupied with > other things, but hopefully I can back to fixing bugs for CTS next > month! > > Anyhow, test is passing for me on Nouveau and i965 with the updated patches.
Great :) > On Sat, Oct 7, 2017 at 10:42 PM, Kenneth Graunke <kenn...@whitecape.org> > wrote: > > From: Karol Herbst <karolher...@gmail.com> > > > > Fixes 'KHR-GL45.copy_image.functional' on Nouveau and i965. > > > > v2: (by Kenneth Graunke) > > Rewrite patch according to Jason Ekstrand's review feedback. > > This makes it handle differing strides, which i965 needed. > > > > Signed-off-by: Karol Herbst <karolher...@gmail.com> > > --- > > src/mesa/main/format_utils.c | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/src/mesa/main/format_utils.c b/src/mesa/main/format_utils.c > > index d16d69c3795..31580750bd4 100644 > > --- a/src/mesa/main/format_utils.c > > +++ b/src/mesa/main/format_utils.c > > @@ -312,6 +312,20 @@ _mesa_format_convert(void *void_dst, uint32_t > > dst_format, size_t dst_stride, > > * enable it for specific combinations that are known to work. > > */ > > if (!rebase_swizzle) { > > + /* Do a direct memcpy where possible */ > > + if ((dst_format_is_mesa_array_format && > > + src_format_is_mesa_array_format && > > + src_array_format == dst_array_format) || > > + src_format == dst_format) { > > + int format_size = _mesa_get_format_bytes(src_format); > > + for (row = 0; row < height; row++) { > > + memcpy(dst, src, width * format_size); > > + src += src_stride; > > + dst += dst_stride; > > + } > > in my first draft I actually had a for loop like that, but I was using > width * src_stride and then came up with the idea of doing just one > memcpy. But I guess it isn't possible now and maybe it was even wrong > before. That would work when src_stride == dst_stride. If stride > width * format_size, then it would also copy padding at the end of each row unnecessarily. But, in the case where they match, and there isn't padding, it would probably be better... I think your original patch worked fine, it just only handled a very specific case. For i965, I needed to handle mismatched strides - one was larger, presumably due to tiling...
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev