screen physical size, DPI, font size - how does it work?

Hong Liu hong.liu at intel.com
Sun Oct 7 19:43:24 PDT 2007


On Sun, 2007-10-07 at 11:01 -0400, Alex Deucher wrote:
> On 10/7/07, Alexej Davidov <alexej.davidov at gmx.net> wrote:
> > Hi,
> >
> > up to now I've set the DPI value explicitely with --dpi 100. This gives
> > sensible font sizes. I've now tried to let X do it automatically, but
> > with no success. The detected physical screen size is wrong and I
> > didn't manage to convince X of the correct one. So I always get 96x96
> > dpi. Also I don't really understand How the DPI value given in Xorg.log
> > correlates to the actually set value.
> >
> > I use the ati driver on a R300 (version 6.7.195) with xorg-core 1.4 on
> > an IBM Thinkpad.
> >
> > I'll explain my struggles to get X to use the correct values. What I
> > want to know is, what the right way is to do this. Maybe I'm
> > completely misguided and it's all different now with xrandr-1.2.
> >
> > The other thing is: if I set the resolution to the theoretically
> > correct value, which is 125x125 dpi in my case (1400x1025 at
> > 285x215mm), all the fonts are far to big.
> >
> > 1) not specifying anything in xorg.conf:
> > Xorg.0.log says:
> > ...
> > (II) RADEON(0): Setting screen physical size to 370 x 277
> >
> > The physical size is wrong. It is actually 285x215 mm. Also,
> > xdpyinfo gives 96x96 dpi. How does this relate to the entry in Xorg.log?
> >
> > 2) specifying the physical screen size in a monitor section and binding
> > the monitor to the LVDS output:
> >
> > I've done the following in xorg.conf:
> >
> > Section "Device"
> >   ...
> >   Option "Monitor-LVDS" "Thinkpad Display"
> > EndSection
> >
> > Section "Monitor"
> >     Identifier  "Thinkpad Display"
> >     DisplaySize 285 215
> > EndSection
> >
> > Now, in Xorg.log I get:
> > (II) RADEON(0): Output LVDS using monitor section Thinkpad Display
> > but I still get
> > (==) RADEON(0): DPI set to (75, 75)
> > Also the pysical size is still wrong:
> > (II) RADEON(0): Setting screen physical size to 370 x 277
> >
> > 3) specifying the monitor in the screen section:
> > In addition to what I've done in 2), I've also specified the monitor in
> > the screen section. Now this monitor is bound to both, VGA-0 and LVDS:
> > (II) RADEON(0): Output VGA-0 using monitor section Thinkpad Display
> > (II) RADEON(0): Output LVDS using monitor section Thinkpad Display
> >
> > Now I get a different DPI entry in Xorg.log:
> > (**) RADEON(0): DPI set to (142, 151)
> > but still the wrong physical size:
> > (II) RADEON(0): Setting screen physical size to 370 x 277
> >
> >
> > No matter what I do, the physical size is always reported as 370 x 277.
> > xdpyinfo always gives 96x96 dpi. Also, in all 3 cases, Xorg.log
> > always reports the following:
> > (II) RADEON(0): Port2:
> >  Monitor   -- AUTO
> >  Connector -- Proprietary/LVDS
> >  DAC Type  -- None
> >  TMDS Type -- None
> >  DDC Type  -- None
> 
> Laptops without a panel edid do not provide a physical size in the
> bios tables so we have no way of knowing what size it really is.
> Also, the xserver isn't parsing the display size from the monitor
> section at the moment:
> https://bugs.freedesktop.org/show_bug.cgi?id=12474
> 

I am also looking at this problem recently. Problems are if we can't
detect the physical size from EDID data, X server calculates the
physical size using 96dpi. Or we get wrong physical size from EDID data,
and this may cause X server get wrong DPI.

Currently we don't use the DisplaySize option to override the physical
size of monitor. I am not sure preferring user specified physical size
is a feasible solution?



> Alex
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg



More information about the xorg mailing list