The temporary workaround for this is to convert the Cairo surface to PNG data, and then discard that data. Its hard to debug this because in the rendering unit tests, the SDL texture raw data is as expected, and the code works fine on macOS, so the source of the problem is currently unknown.