Bug 89820 - [8086] x86_64 i915 detects wrong resolution and DPI / HD Graphics 4600
Summary: [8086] x86_64 i915 detects wrong resolution and DPI / HD Graphics 4600
Status: RESOLVED NOTOURBUG
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Chris Wilson
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-30 03:36 UTC by igpg
Modified: 2015-04-06 16:12 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
xorg log file (20.84 KB, text/plain)
2015-03-30 03:36 UTC, igpg
no flags Details
dmesg if needed (77.91 KB, text/plain)
2015-03-30 03:38 UTC, igpg
no flags Details
xrandr verbose output (4.52 KB, text/plain)
2015-03-30 03:46 UTC, igpg
no flags Details
xdpyinfo (6.79 KB, text/plain)
2015-03-30 03:47 UTC, igpg
no flags Details

Description igpg 2015-03-30 03:36:47 UTC
Created attachment 114706 [details]
xorg log file

INFO:
3.19.2-1-ARCH #1 SMP PREEMPT Wed Mar 18 16:21:02 CET 2015 x86_64 GNU/Linux
xf86-video-intel 2.99.917-4
mesa 10.5.2-1
xorg-server 1.17.1-4
libdrm 2.4.60-2

Basically on a vanilla configuration (I just got the laptop so no xorg.conf or anything in xinit) the driver fails to detect the resolution and (as a result I guess) it fails also to calculate the DPI and set's it to 96.

1) [   818.122] (II) intel(0): Setting screen physical size to 508 x 285

It's wrong, my screen is a full HD 15.6" 345x194mm

2) [   818.089] (==) intel(0): DPI set to (96, 96)

Which is confirmed by xdpyinfo:
 xdpyinfo | grep -B2 resolution
screen #0:
  dimensions:    1920x1080 pixels (508x285 millimeters)
  resolution:    96x96 dots per inch

However xrandr shows eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 345mm x 194mm

Maybe becuase was disabled and enabled during startx? I don't know.

This cause most of the DE's display everything in miniature and basically the laptop is unusable (otherwise you go blind).
Comment 1 igpg 2015-03-30 03:38:40 UTC
Created attachment 114707 [details]
dmesg if needed
Comment 2 igpg 2015-03-30 03:46:22 UTC
Created attachment 114708 [details]
xrandr verbose output
Comment 3 igpg 2015-03-30 03:47:28 UTC
Created attachment 114709 [details]
xdpyinfo
Comment 4 Chris Wilson 2015-03-30 08:20:01 UTC
The xrandr screen size comes from your EDID. The DPI is an artificial number to match X protocol expectations, and the display dimensions adjusted to match X. This is a long, long standing issue of which the answer has been "those which cannot handle DPI are told 96, those that do can query it in on a per-monitor basis via xrandr".
Comment 5 igpg 2015-03-30 11:14:30 UTC
Sorry but is that supposed to be an answer?
It handles everything correctly under windows, why it shouldn't under Linux?
An one very imporant quesition wasn't answered the question why INTEL detects the screen as a  508 x 285mm while it's not. And forgive me if I'm wrong but it's Xorg who get's the config from Intel and not the opposite.
Comment 6 Chris Wilson 2015-03-30 11:23:52 UTC
It detects it as 345mm x 194mm. Everything else is a lie X has chosen to maintain for over a decade.
Comment 7 igpg 2015-03-30 11:30:19 UTC
So basically:
 [   818.122] (II) intel(0): Setting screen physical size to 508 x 285
Is not set by Intel but by Xorg itself is that correct?
If that's so I should fill a bug against Xorg?
Thanks.
Comment 8 Chris Wilson 2015-03-30 11:37:01 UTC
It's a policy imposed by X that the core protocol is 96dpi. To get the true dpi, clients are expected to RandR. See bug 23705, and a later thread at bug 41115.


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.