On Mon, 23 Mar 2020 at 03:42, Zebediah Figura z.figura12@gmail.com wrote:
Different drivers may produce either #ff7f00 or #ff8000 here, both on Windows and Linux.
It should be noted that 0x80 is actually the reasonable way to quantise 0.5f. (I.e., 0.5 * 255 = 127.5, which rounds to 128 both when rounding to nearest even and when rounding half either towards +∞, or away from 0. Other rounding modes exist of course, but would be much more unusual.) Nevertheless, using 0.5f is asking for problems when you need exact results; use either 127.0f / 255.0f for 0x7f, or 128.0f / 255.0f for 0x80.
Perhaps better would be to avoid depending on pixel-exact color, but it's not clear to me what the preferred way of doing that is.
It depends on what you're trying to test. For tests like these, exact colours should be achievable simply by picking reasonable inputs. For things involving more complex calculations like e.g. blending and/or texturing we can probe specific parts of the result with get_readback_colour() + compare_colour(). For cases where we care more about the general shape of the result, there's compare_figure().