If I scale the alpha channel in rendercheck/eval_diff similar to the color channel, rendercheck fails on me for A8 dst. The above fixes the failures for A8 dst, but I'am not sure that this is the actual problem or masks it for me, so please verify.
Do you mean exaTryDriverSolidFill() should return 0 instead of -1 in this case?
I refer to exaGetPixelFromRGBA(), for which exaTryDriverSolidFill() does not check the return value at all. diff -r1.32 exa_render.c 285,286c285,290 < exaGetPixelFromRGBA(&pixel, red, green, blue, alpha, < pDst->format); --- > if (!exaGetPixelFromRGBA(&pixel, red, green, blue, alpha, > pDst->format)) > { > REGION_UNINIT(pDst->pDrawable->pScreen, ®ion); > return -1; > }
I have revision 1.32 of exa_render.c, and it does exactly that.
Ignore me, I confused exaGetRGBAFromPixel and exaGetPixelFromRGBA. :}
Created attachment 6003 [details] [review] Check both exaGet*From* in one statement How about this one instead?
I pushed your patch, as it's more consistent with the surrounding code.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.