No announcement yet.

How can I get GPU scaling to work?

  • Filter
  • Time
  • Show
Clear All
new posts

  • How can I get GPU scaling to work?

    I'm trying to make GPU scaling work, so that all resolutions will be upscaled to 1920x1080. On Windows, I can simply click a checkbox for that. On Linux, there's no such setting in nvidia-settings.

    So I've read the documentation of the latest available driver:

    There, it mentions:

    Option "FlatPanelProperties" "Scaling = Centered"

    So I've put that in the "Device" section. But it doesn't do anything.

    Can anybody help with this? Where am I supposed to write this setting? I'm using 313.09 on Gentoo Linux x86-64.

  • #2
    Indirect sample xorg configuration with this option. Link.


    • #3
      Originally posted by crazycheese View Post
      Indirect sample xorg configuration with this option. Link.
      That only works with the older drivers. Recent drivers don't have such an option in nvidia-settings (as mentioned in the first post.)

      Anyway, I asked on the NVidia forums and I've been told that this option has also been removed from xorg.conf. I've been given another option that is supposed to work, but doesn't.

      There doesn't seem to be a way to set this up anymore with NVidia cards :-/


      • #4
        I'll have to poke with what the dev was mentioning. The only method I've found to reliably work is what the second poster was describing.

        You can add metamodes that have a transformation function either based on a matrix for complex changes or ViewPortIn/Out for simple scaling. They are of the form:
        Output: ScreenResolution { ViewPortIn=ProgramResolution, ViewPortOut=ScaledResolution+XOffset+YOffset }
        For instance, say I want to play the original Linux verson of Cave Story (640x480) scaled up to monitor height (1920x1200) at the proper aspect ratio; I would then add a ViewPort metamode to my xorg.conf (in my case a separate one for fullscreen games) like so:
        Option "metamodes" "DFP-1: 1920x1200; DFP-1: 1920x1200 { ViewPortIn=640x480, ViewPortOut=1600x1200+160+0 }"
        This would scale an input of 640x480 to 1600x1200 and offset it 160 pixels from the left of my 1920x1200 screen. The GPU will handle all scaling; the monitor itself will only get a 1920x1200 output.

        The good news is this system is ridiculously flexible (like I said, you could even use a matrix to specify the transformation needed). The bad news is you have to do this for every single input resolution you'll encounter. Hopefully what aplattner is hinting at can work so we can have a convenient scaling switch (or maybe nvidia can add one again --, but otherwise adding metamodes as needed will work.
        Last edited by ZekeSulastin; 12-22-2012, 05:09 PM.