Bug 18536

Summary: Bad vertical size set by driver
Product: xorg Reporter: Orion Poplawski <orion>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED NOTOURBUG QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: 6.9.0   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
X log none

Description Orion Poplawski 2008-11-14 09:34:18 UTC
Created attachment 20309 [details]
X log

I'm seeing:

screen #0:
  dimensions:    1280x800 pixels (289x21 millimeters)
  resolution:    112x968 dots per inch               


with ATI radeon express 200M and xorg-x11-drv-ati-6.9.0-38.fc10.x86_64


(II) RADEON(0): Max Image Size [cm]: horiz.: 33  vert.: 21

(II) RADEON(0): clock: 71.2 MHz   Image Size:  289 x 21 mm

(II) RADEON(0): Setting screen physical size to 289 x 21


The 21 mm size does crazy things.


xorg-x11-drv-ati-6.9.0-38.fc10.x86_64
ATI Radeon Express 200M
Comment 1 Alex Deucher 2008-11-14 09:58:43 UTC
The edid from your panel has bad size data:
(II) RADEON(0): clock: 71.2 MHz   Image Size:  289 x 21 mm
It looks like they specified the height in cm rather than mm. IIRC, newer xservers (git master maybe) have a quirk to deal with these kind of problems, but I don't know if the patch is in xserver 1.5.x.  You can override it in your xorg.conf.  See the "Changing DPI and DisplaySize" section of this page:
http://wiki.debian.org/XStrikeForce/HowToRandR12
Comment 2 Julien Cristau 2008-11-14 10:08:12 UTC
On Fri, Nov 14, 2008 at 09:34:19 -0800, bugzilla-daemon@freedesktop.org wrote:

> (II) RADEON(0): Max Image Size [cm]: horiz.: 33  vert.: 21
> 
> (II) RADEON(0): clock: 71.2 MHz   Image Size:  289 x 21 mm
> 
> (II) RADEON(0): Setting screen physical size to 289 x 21
> 
> 
> The 21 mm size does crazy things.
> 
the server already has a quirk that should apply to your monitor and fix
this, but somehow it's not used?

static Bool quirk_detailed_use_maximum_size (int scrnIndex, xf86MonPtr DDC)
{
    /* Bug #10304: LGPhilipsLCD LP154W01-A5 */
    if (memcmp (DDC->vendor.name, "LPL", 4) == 0 &&
        (DDC->vendor.prod_id == 0 || DDC->vendor.prod_id == 0x2a00))
        return TRUE;

    return FALSE;
}
Comment 3 Orion Poplawski 2008-11-14 10:29:18 UTC
Does seem to be activated:
(II) RADEON(0): EDID vendor "LPL", prod id 0
(II) RADEON(0):     EDID quirk: Detailed timings give sizes in cm.

But it's really only the vertical size that is reported in cm, or is just plain wrong:

(II) RADEON(0): clock: 71.2 MHz   Image Size:  289 x 21 mm

Certainly don't want to multiply both by 10:

        if (quirks & DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE) {
            det_mon->section.d_timings.h_size = 10 * DDC->features.hsize;
            det_mon->section.d_timings.v_size = 10 * DDC->features.vsize;
        }
Comment 4 Julien Cristau 2008-11-14 11:04:40 UTC
> --- Comment #3 from Orion Poplawski <orion@cora.nwra.com>  2008-11-14 10:29:18 PST ---
> Certainly don't want to multiply both by 10:
> 
>         if (quirks & DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE) {
>             det_mon->section.d_timings.h_size = 10 * DDC->features.hsize;
>             det_mon->section.d_timings.v_size = 10 * DDC->features.vsize;
>         }
> 
DDC->features.{h,v}size are the dimensions reported in:

(II) RADEON(0): Max Image Size [cm]: horiz.: 33  vert.: 21

They are in cm, so multiplying them by 10 is correct.

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.