<p dir="ltr">It's not a regression. That test sometimes pass and sometimes fail during a piglit run, without any regard to my patches. I saw it multiple times. <br>
When you run it by itself, it always passes, with or without my patches. </p>
<p dir="ltr">Oded</p>
<div class="gmail_quote">On Apr 21, 2016 5:43 PM, "Ilia Mirkin" <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It appears you regressed vbo-subdata-many<br>
drawelements/drawrangeelements. This seems highly relevant, since it's<br>
mapping a buffer and updating data within it. Any idea what happened<br>
there? Or was it just passing by luck before?<br>
<br>
On Thu, Apr 21, 2016 at 10:39 AM, Oded Gabbay <<a href="mailto:oded.gabbay@gmail.com">oded.gabbay@gmail.com</a>> wrote:<br>
> Hi,<br>
><br>
> In v3 I removed all changes to gallium and mesa/st as they are no longer needed.<br>
> All the work to recognize if and when we need to do endian swapping is done<br>
> inside the r600g driver and no additional flag was added to any structure.<br>
><br>
> This magic is done by understanding that the only use case where endian swapping<br>
> is *not* needed in a big-endian machine is for textures that are handled by the<br>
> DB unit in the GPU, because DB can't do swapping. Therefore, if a texture is<br>
> marked as depth and not flushing, I disable the swap (treat it with GPU<br>
> endianess). In all other cases, I configure endian swap. Credit is due to<br>
> Marek Olšák who gave me this information.<br>
><br>
> That is not the entire picture though. There are exceptions, such as array<br>
> formats. There are also cases where it is not enough to do byte-swapping and<br>
> I need to do component swapping or change the swizzling configuration. But all<br>
> that is done strictly in the r600g translation functions.<br>
><br>
> As a result, and because two patches that were approved have already been<br>
> pushed to master, the patch-set got a lot smaller.<br>
><br>
> The results got a bit better than v2. Still there are some difference vs.<br>
> x86-64 but the majority of cases were fixed.<br>
><br>
> Tests were done using piglit and by visual observance (I often looked at<br>
> the screen to verify the colors are correct).<br>
><br>
> For BE, I used a POWER7 machine with a CEDAR GL card (Evergreen).<br>
> For LE, I used a skylake machine with the same card.<br>
><br>
> I fixed most of the major tests (and some minor ones) - readpixsanity,<br>
> draw-pixels, texwrap, copy-pixels and more. I started with 222 failed tests and<br>
> finished with 122 failed tests. Most of the tests I fixed were already working<br>
> in llvmpipe BE, so I knew that at least the core mesa code is working. In<br>
> accordance to that, most of the remaining failed tests also don't work in<br>
> llvmpipe BE, so there is probably something more fundamentaly wrong there.<br>
><br>
> Results of piglit tests are found in my fdo web folder:<br>
> <a href="https://people.freedesktop.org/~gabbayo/piglit_results/r600g-big-endian/" rel="noreferrer" target="_blank">https://people.freedesktop.org/~gabbayo/piglit_results/r600g-big-endian/</a><br>
><br>
> There are three comparisons, all of them done after reducing OpenGL version to<br>
> 1.3:<br>
><br>
> 1. r600g-1.3-base-le-vs-be -<br>
>    Diff between LE and BE with upstream code to see the current status<br>
><br>
> 2. r600g-1.3-le-vs-be -<br>
>    Diff between LE and BE with upstream + patch-set to see the remaining tests<br>
>    to be fixed<br>
><br>
> 3. r600g-be-1.3-all-fixes -<br>
>    Diff between upstream code and upstream + patch-set, both running in BE.<br>
>    This shows all the tests my patch-set fixed (and no regressions)<br>
><br>
> In addition, I of course checked for regressions on LE, without reducing OpenGL<br>
> version.<br>
><br>
> Thanks,<br>
><br>
>    Oded<br>
><br>
> Oded Gabbay (4):<br>
>   r600g/radeonsi: send endian info to format translation functions<br>
>   r600g: set endianess of 16/32-bit buffers according to do_endian_swap<br>
>   r600g: use do_endian_swap in color swapping functions<br>
>   r600g: use do_endian_swap in texture swapping function<br>
><br>
>  src/gallium/drivers/r600/evergreen_state.c    | 42 ++++++++++++------<br>
>  src/gallium/drivers/r600/r600_pipe.h          |  8 ++--<br>
>  src/gallium/drivers/r600/r600_state.c         | 27 ++++++++----<br>
>  src/gallium/drivers/r600/r600_state_common.c  | 62 ++++++++++++++++++++++-----<br>
>  src/gallium/drivers/radeon/r600_pipe_common.h |  2 +-<br>
>  src/gallium/drivers/radeon/r600_texture.c     | 24 +++++++----<br>
>  src/gallium/drivers/radeonsi/si_state.c       |  4 +-<br>
>  7 files changed, 122 insertions(+), 47 deletions(-)<br>
><br>
> --<br>
> 2.5.5<br>
><br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div>