So for the first time after a long while, I used my Ironlake machine full-time today. And I had this weird feeling all the time as if the display is out of focus. In trying to figure it out, I switched from SNA back to UXA. And what do you know, the feeling was gone immediately. So I took some screenshots.
Here a toolbar button with UXA:
The same toolbar button with SNA:
Note in particular the right edge. You might think that the difference is very small, but it's enough to give me the weird feeling.
Versions of relevant packages are xf86-video-intel-2.20.3, cairo-1.12.2, gtk2-2.24.11, the theme being rendered is Clearlooks. Such a tiny thing, but you know what, I'll stick with UXA for the time being. I'm very sensitive to such things. For example, I use the lcdlegacy freetype filter for fonts, because what the lcddefault filter renders is way too blurry for my eyes.
That turns out to be a bug in cairo...
Author: Chris Wilson <email@example.com>
Date: Mon May 14 17:46:32 2012 +0100
stroke: Don't drop clockwise==0 lines
If the join indicates the pair of edges are parallel, we may be
considering the final segment of the spline with a different tangent
vector than the slope of the final edge and so lead to false dropping of
an edge. This has the effect that the line segments between 'arc arc arc
arc' (a rounded rectangle) are no longer horizontal or vertical. As path
construction tries to eliminate joins between colinear segments, this
optimisation should not be required anyway.
Thanks for that. I recompiled 1.12.2 with the fix, then switched back to SNA. Now I got something different from both previous ones
Looks sharp though, so I'll stick with it.
Cairo asks for Imprecise rendering by default, so the driver is allowed to take a few shortcuts and avoid the overhead of enforcing an 15x17 sampling grid for trapezoidal rasterisation, but still has to obey various rules to ensure that rendering a set of trapezoids is still deterministic. Hopefully I have chosen a good compromise between speed and quality, it should still be higher quality than using skia for example ;-)