openQA vs. Rawhide

Adam Williamson adamwill at fedoraproject.org
Wed Jul 8 00:53:27 UTC 2015


On Tue, 2015-07-07 at 15:45 -0700, Adam Williamson wrote:
> 
> An interesting case I just discovered is that if I set GNOME's 'text
> scaling factor' to 1.01 on the Workstation live, it makes the glyph
> heights the same as in boot.iso, but there are still some very subtle
> differences in the rendering: for e.g. the kerning is a bit different
> (there's a one pixel gap between the 'D' and the 'o' of 'Done' in
> Workstation-at-1.01 while on boot.iso there's no gap).

Just to further update this, we've more or less pinned it down now.
mclasen was extremely helpful in chasing it through various obscure
bits of X11 and GTK+.

There's a neat GTK+ debugging thing called the GtkInspector which you
can launch from any GTK+ 3 app with shift+ctrl+D. From that you can
look at Properties then GtkSettings, and look at the gtk-xft-*
settings. I noticed two significant differences between anaconda
running from boot.iso or KDE live and anaconda running from Workstation
live, both at 1024x768 in a VM. gtk-xft-hintstyle is 'medium' in
Workstation but 'full' in boot.iso/KDE, and gtk-xft-dpi is 98304 in
Workstation but 98401 in boot.iso/KDE. That value is a DPI multiplied
by 1024; Workstation's is exactly 96 (98304/1024 = 96), boot.iso/KDE
is...a little bit more than 96.

Basically we figured out that for some reason the defaults that should
be set by /etc/X11/Xresources don't seem to actually be merged into X,
in boot.iso and KDE live image at least. So GDK (part of GTK+) falls
back on its internal defaults for hinting style and display resolution
(DPI). Its default for hinting style, in the absence of any external
indication, is 'hintfull', and its default for DPI is to actually
calculate the 'correct' DPI for the display. It turns out that a KVM at
1024x768 reports its "monitor's" vertical size as 203mm; if you
reproduce GDK's calculation with 768 pixels and 203mm:

768 (pixel height) * 25.4 (inches to MM) / 203 (height in MM) * 1024
(GDK's multiplication factor) ~= 98401 (actually a bit lower but it
gets rounded to the nearest integer)

and that's where the weird 98401 value comes from.

>From here there's a few angles of attack:

1) Why does libvirt/qemu/whatever report a display size which doesn't
*quite* give a resolution of exactly 96dpi?

2) Why don't the settings in /etc/X11/Xresources actually get merged
into X config? (/etc/X11/xinitrc-common looks like it ought to do this)

3) Should GDK just use the same defaults we've tried to put in to X
(/etc/X11/Xresources) and GNOME (g-s-d defaults) - i.e. medium hinting
and 96dpi?

which we'll look into tomorrow, cos I've got to go out for dinner
now...:)
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net



More information about the qa-devel mailing list