Skip to content

png: Correct endianness for big-endian machines

Simon McVittie requested to merge wip/smcv/png-endian into main

libpng wants to receive samples in either RGB or RGBA order, whether each sample is big-endian or not. This resolves test failures in testsuite/gdk/memorytexture.c (and a lot of reftests) on s390x, and probably the PowerPC family too.

Modifying the test to show the color in use and write out the PNG bytes to a file, and running the memorytexture test on s390x, produces a PNG that loads with the correct color values in GIMP (on an x86_64 machine), which seems like evidence that this is the correct change and not just compensating errors.

Resolves: #4616 (closed)

/cc @otte

Merge request reports