From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 80868] New: Support screen scaling modes for external monitors Date: Thu, 03 Jul 2014 18:59:37 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0609902633==" Return-path: Received: from culpepper.freedesktop.org (unknown [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 384F16E744 for ; Thu, 3 Jul 2014 11:59:37 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============0609902633== Content-Type: multipart/alternative; boundary="1404413977.0ceF1A030.10957"; charset="us-ascii" --1404413977.0ceF1A030.10957 Date: Thu, 3 Jul 2014 18:59:37 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" https://bugs.freedesktop.org/show_bug.cgi?id=80868 Priority: medium Bug ID: 80868 Assignee: dri-devel@lists.freedesktop.org Summary: Support screen scaling modes for external monitors Severity: enhancement Classification: Unclassified OS: All Reporter: kamil.paral@gmail.com Hardware: Other Status: NEW Version: XOrg CVS Component: DRM/Radeon Product: DRI As we steadily progress into the year of Linux gaming, there will be many requests regarding games. This is one of them :) Currently, it is possible to set scaling mode for a monitor only if the monitor is internal (LVDS, eDP). This is done through xrandr: $ xrandr --prop Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192 LVDS1 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 331mm x 207mm scaling mode: Full aspect supported: None, Full, Center, Full aspect $ xrandr --output LVDS1 --set "scaling mode" "Center" However, it is not possible to do this for external panels (VGA, DVI, HDMI, DP). The "scaling mode" property is not exported for these panels (this was confirmed to me by ckoenig and agd5f on the #radeon irc channel, many thanks). Please allow users to set scaling mode even for external panels. There are many use cases for it, mainly related to gaming. Note: Many panels provide options to do the scaling on their own, however, only the very expensive ones provide good options. For example, the majority of "mainstream" panels don't provide the "center" scaling mode - however, that is very useful when playing older lower-resolution games when you prefer smaller and sharp image instead of larger and blurry. Second example are certain panels which support "full aspect" mode only for a small selection or resolutions, otherwise they simply scale to "full" ignoring image aspect ratio. For these panels, GPU scaling is essential if the user doesn't want to see distorted aspect ratio image. My personal use case is buying BenQ BL2411PT 1920x1200 panel, which *can not* display 1920x1080 resolution with correct aspect ratio - it always stretches it vertically. Yes, it's very dumb, yet that's how modern panels commonly work (and not just the cheap ones). This hasn't been a large issue in the past, because we had no games and opensource drivers were hardly able to run them anyway. Both things are changing rapidly. The proprietary AMD and NVIDIA drivers have been offering GPU scaling functionality for a long time, both on Linux and Windows. Here's an example of their GUI configuration: https://www.codeweavers.com/support/wiki/linux/faq/43_game_stretch Please allow us to use GPU scaling even with radeon driver. Thank you. There has been some technical details on the IRC, it is linked here: http://paste.fedoraproject.org/115407/ It seems to me that this functionality could be implemented in a simple and straightforward way: a) provide a single configuration option - "scaling mode" b) on internal panels default to "Full aspect" (which you already do) - that is reasonable default, because these panels have no control buttons c) on external panels default to "None" - that allows the user to easily configure scaling through the panel. Only if the user is dissatisfied, he/she can enable GPU scaling through xrandr. And here's one more user seconding my thoughts on the IRC: AbortRetryFail: 1:1 unscaled output for LCDs would be awesome. AbortRetryFail: 1280x720 looks horrible scaled up to fit a 1366x768 LCD Thanks. -- You are receiving this mail because: You are the assignee for the bug. --1404413977.0ceF1A030.10957 Date: Thu, 3 Jul 2014 18:59:37 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"
Priority medium
Bug ID 80868
Assignee dri-devel@lists.freedesktop.org
Summary Support screen scaling modes for external monitors
Severity enhancement
Classification Unclassified
OS All
Reporter kamil.paral@gmail.com
Hardware Other
Status NEW
Version XOrg CVS
Component DRM/Radeon
Product DRI

As we steadily progress into the year of Linux gaming, there will be many
requests regarding games. This is one of them :)

Currently, it is possible to set scaling mode for a monitor only if the monitor
is internal (LVDS, eDP). This is done through xrandr:

$ xrandr --prop
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192
LVDS1 connected primary 1680x1050+0+0 (normal left inverted right x axis y
axis) 331mm x 207mm
<snip>
    scaling mode: Full aspect 
        supported: None, Full, Center, Full aspect
<snip>

$ xrandr --output LVDS1 --set "scaling mode" "Center"

However, it is not possible to do this for external panels (VGA, DVI, HDMI,
DP). The "scaling mode" property is not exported for these panels (this was
confirmed to me by ckoenig and agd5f on the #radeon irc channel, many thanks).

Please allow users to set scaling mode even for external panels. There are many
use cases for it, mainly related to gaming.

Note: Many panels provide options to do the scaling on their own, however, only
the very expensive ones provide good options. For example, the majority of
"mainstream" panels don't provide the "center" scaling mode - however, that is
very useful when playing older lower-resolution games when you prefer smaller
and sharp image instead of larger and blurry. Second example are certain panels 
which support "full aspect" mode only for a small selection or resolutions,
otherwise they simply scale to "full" ignoring image aspect ratio. For these
panels, GPU scaling is essential if the user doesn't want to see distorted
aspect ratio image.

My personal use case is buying BenQ BL2411PT 1920x1200 panel, which *can not*
display 1920x1080 resolution with correct aspect ratio - it always stretches it
vertically. Yes, it's very dumb, yet that's how modern panels commonly work
(and not just the cheap ones). This hasn't been a large issue in the past,
because we had no games and opensource drivers were hardly able to run them
anyway. Both things are changing rapidly.

The proprietary AMD and NVIDIA drivers have been offering GPU scaling
functionality for a long time, both on Linux and Windows. Here's an example of
their GUI configuration:
https://www.codeweavers.com/support/wiki/linux/faq/43_game_stretch

Please allow us to use GPU scaling even with radeon driver. Thank you.

There has been some technical details on the IRC, it is linked here:
http://paste.fedoraproject.org/115407/

It seems to me that this functionality could be implemented in a simple and
straightforward way:
a) provide a single configuration option - "scaling mode"
b) on internal panels default to "Full aspect" (which you already do) - that is
reasonable default, because these panels have no control buttons
c) on external panels default to "None" - that allows the user to easily
configure scaling through the panel. Only if the user is dissatisfied, he/she
can enable GPU scaling through xrandr.

And here's one more user seconding my thoughts on the IRC:
AbortRetryFail: 1:1 unscaled output for LCDs would be awesome.
AbortRetryFail: 1280x720 looks horrible scaled up to fit a 1366x768 LCD

Thanks.


You are receiving this mail because:
  • You are the assignee for the bug.
--1404413977.0ceF1A030.10957-- --===============0609902633== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============0609902633==--