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. 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. > + return; > + } > + > /* Handle the cases where we can directly unpack */ > if (!src_format_is_mesa_array_format) { > if (dst_array_format == RGBA32_FLOAT) { > -- > 2.14.2 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev