Bug 73770 - [NVD9] nouveau doesn't setup 1920x1200 mode on HDMI properly
Summary: [NVD9] nouveau doesn't setup 1920x1200 mode on HDMI properly
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: unspecified
Hardware: Other All
: medium major
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-18 19:05 UTC by Martin Holec
Modified: 2015-10-22 04:37 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log (108.21 KB, text/plain)
2014-01-18 19:05 UTC, Martin Holec
no flags Details
dmesg (2.91 KB, text/plain)
2014-01-18 19:07 UTC, Martin Holec
no flags Details
dmesg video=DP-1:1920x1200 (2.91 KB, text/plain)
2014-01-18 19:09 UTC, Martin Holec
no flags Details

Description Martin Holec 2014-01-18 19:05:23 UTC
Created attachment 92350 [details]
Xorg.0.log

I have 1920x1200 60 Hz monitor connected via DP-HDMI cable to Lenovo T520 laptop.

Actual results:
I have configured 1920x1200 resolution (see xrandr).
Monitor's menu shows 1920x1080 input resolution.
Screen covers 1920x1080 physical area on monitor.
Fonts are blurry, seems like virtual screen image 1920x1200 reduced to 1920x1080 (When I configure 1920x1080 mode, fonts are OK).

nVidia binary blob can set 1920x1200 resolution properly on same HW configuration.

Informations from EDID are correct, see Xorg.0.log.

Expected results:
Physical screen resolution on monitor should be 1920x1200.

I think there is some hardcoded limitation in DRM or nouveau driver. Because hardware is perfectly capable of running 1920x1200 via HDMI.

01:00.0 VGA compatible controller: NVIDIA Corporation GF119M [Quadro NVS 4200M] (rev a1)

xrandr 
Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 8192 x 8192
LVDS-1 connected (normal left inverted right x axis y axis)
   1600x900       60.0 +   50.0  
   1152x864       60.0  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
   720x400        59.6  
   640x400        60.0  
   640x350        59.8  
VGA-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 291mm
   1920x1080      60.0 +   59.9  
   1920x1200      60.0* 
   1920x1080i     60.1     50.0     60.0  
   1600x1200      60.0  
   1680x1050      59.9  
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1152x864       75.0  
   1280x720       60.0     50.0     59.9  
   1440x576i      50.1  
   1024x768       75.1     70.1     60.0  
   1440x480i      60.1     60.1  
   832x624        74.6  
   800x600        72.2     75.0     60.3  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        75.0     72.8     66.7     60.0     59.9  
   720x400        70.1  
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
Comment 1 Martin Holec 2014-01-18 19:07:55 UTC
Created attachment 92351 [details]
dmesg
Comment 2 Martin Holec 2014-01-18 19:09:37 UTC
Created attachment 92352 [details]
dmesg video=DP-1:1920x1200

I cannot workaround it by adding this to kernel cmdline: video=DP-1:1920x1200 nor using xorg.conf "Modeline" and "PreferedMode" options.

At least DRM allocates "1920x1200" instead of "1920x1080", but I don't any other change from actual results.
Comment 3 Ilia Mirkin 2014-01-18 20:51:16 UTC
Can you try setting the "scaling mode" to None with xrandr?
Comment 4 Martin Holec 2014-01-21 21:50:34 UTC
I run: xrandr --output DP-1 --set "scaling mode" "None"

This workarounds the problem, thanks.

It's still scaled wrongly in VT and I have to run it every time I boot.

1) Can I add this workaround in kernel cmd line?

2) Could you fix it properly in nouveau driver to make it scaling right by default?
Comment 5 Ilia Mirkin 2014-01-21 22:00:48 UTC
(In reply to comment #4)
> I run: xrandr --output DP-1 --set "scaling mode" "None"
> 
> This workarounds the problem, thanks.
> 
> It's still scaled wrongly in VT and I have to run it every time I boot.
> 
> 1) Can I add this workaround in kernel cmd line?

Well, I think xrandr just manipulates the KMS property. You can do this yourself as well. The only tool I know of that lets you do this is the "modetest" tool that's in the tests dir of drm, but perhaps there are others. Perhaps there's also a way to set that as a default via video= or something like that, but I'm not aware of anything specific.

> 
> 2) Could you fix it properly in nouveau driver to make it scaling right by
> default?

I believe that the current policy was deemed to be the correct one. I don't really know the details of the various situations though. I believe the implication of the EDID is that it's really a natively 1920x1080 monitor, so we should scale for any other resolution. However, again, I'm a little weak on the specifics. You might try asking in #nouveau or #xorg on freenode.
Comment 6 Ilia Mirkin 2015-10-22 04:37:58 UTC
I believe semi-recent kernels have updated the logic for when to enable scaling mode automatically. It's basically restricted to LVDS and eDP. See commit 0ea5fe8a83c, in kernel 4.0+.


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.