Mesa (master): gallium/osmesa: Try to fix the test for big-endian.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Feb 4 18:07:07 UTC 2020


Module: Mesa
Branch: master
Commit: b064697af1dc8927756986f396c793e0e23c42e9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b064697af1dc8927756986f396c793e0e23c42e9

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Jan 14 16:50:41 2020 -0800

gallium/osmesa: Try to fix the test for big-endian.

Our packed expected values will be byte-swapped for the (mostly) array
formats we're testing.

Reviewed-by: Danylo Piliaiev <danylo.piliaiev at globallogic.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3216>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3216>

---

 src/gallium/targets/osmesa/test-render.cpp | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/gallium/targets/osmesa/test-render.cpp b/src/gallium/targets/osmesa/test-render.cpp
index 55d449c2132..2e5ff962d8e 100644
--- a/src/gallium/targets/osmesa/test-render.cpp
+++ b/src/gallium/targets/osmesa/test-render.cpp
@@ -8,6 +8,8 @@
 
 #include "GL/osmesa.h"
 #include "util/macros.h"
+#include "util/u_endian.h"
+#include "util/u_math.h"
 
 typedef struct {
    unsigned format;
@@ -75,6 +77,25 @@ TEST_P(OSMesaRenderTestFixture, Render)
 
    uint64_t expected = p.expected;
 
+   /* All the formats other than 565 and RGB/byte are array formats, but our
+    * expected values are packed, so byte swap appropriately.
+    */
+   if (UTIL_ARCH_BIG_ENDIAN) {
+      switch (p.bpp) {
+      case 8:
+         expected = util_bswap64(expected);
+         break;
+
+      case 4:
+         expected = util_bswap32(expected);
+         break;
+
+      case 3:
+      case 2:
+         break;
+      }
+   }
+
    glClear(GL_COLOR_BUFFER_BIT);
    glFinish();
 



More information about the mesa-commit mailing list