Linux nvidia refresh rate

How to check and set Refresh Rate with Nvidia Graphics Card

When I tried to update from Ubuntu 12 to Ubuntu 14 I got a warning message against updating stating that your machine does not have 3D support for running the unity desktop environment. My graphics card is a relatively new NVIDIA card, so this should not be a problem:

lspci | grep VGA 01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1) 

In trying to troubleshoot whether or not I have a problem (either currently or if I update), I tried looking at the solutions to this answer on refresh rates (eyes also hurting from staring at the screen) and got an error message.

xrandr xrandr: Failed to get size of gamma for output default Screen 0: minimum 640 x 480, current 1600 x 900, maximum 1600 x 900 default connected 1600x900+0+0 0mm x 0mm 1600x900 0.0* 1024x768 0.0 800x600 0.0 640x480 0.0 
xrandr -r 75 Rate 75.0 Hz not available for this size 

I get this same error message for any value. I also tried using compiz to set the refresh rate based on this answer. However, this does not seem to do anything (both extremely low and extremely high values do not perceptibly change the screen). When I try to go into the driving setting in the menu item NVIDIA X Server Settings for the proprietary driver, I do not see any options at all, let alone options for things like refresh rate. I am using the proprietary NVIDIA driver (331-updates). Also if it is relevant I previously had an issue where at startup the GUI would not boot and it would say “The system is running in low-graphics mode”. This solution fixing a broken xorg file fixed that problem. If relevant, my xorg file now looks like this:

Section "Device" Identifier "Configured Video Device" Driver "vesa" EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection 

In short, I’d like to know whether my graphics driver is having issues, if so how to fix it, and how to change my refresh rate.

Источник

Variable refresh rate

Variable refresh rate (VRR), also referred to as adaptive sync, allows the monitor to adjust its refresh rate to the output signal. This allows for games to eliminate screen tearing with less of the usual downsides of Vsync (such as stuttering). For a comprehensive look at VRR see PC Gaming Wiki.

Overview

This article or section is out of date.

Reason: It looks like this needs to be updated to reflect the latest Intel GPUs. (Discuss in Talk:Variable refresh rate)

There are multiple implementations of VRR:

  • FreeSync is AMD’s implementation of VESA’s VRR standard, and the phrases are often used interchangeably. FreeSync branded monitors should be compatible with all VESA compatible drivers.
  • G-SYNC is NVIDIA’s proprietary hardware and software implementation of VRR.
  • Intel plans on implementing VESA’s standard in their upcoming 11th Gen and dedicated GPUs.
Читайте также:  Linux renew dhcp lease

For setup purposes, it is necessary to differentiate between «native» G-SYNC monitors that licenses Nvidia’s own chip, and G-SYNC Compatible monitors, FreeSync monitors which support a subset of G-SYNC’s functionality. [1] Within the category of G-SYNC Compatible monitors, the monitor may or may not be validated by NVIDIA. [2] [3] Even if a VRR monitor has not passed NVIDIA’s validation (and thus would not be called G-SYNC Compatible in marketing material), you may still be capable of using it with G-SYNC.

VRR compatibility and implementations

Driver VESA G-SYNC
AMDGPU FreeSync No
Intel Planned No
Nouveau No No
NVIDIA G-SYNC Compatible G-SYNC

Xorg configuration

Enable on AMDGPU

If you are using a laptop, you can check if your laptop is compatible with FreeSync.

Using an Xorg conf file

Add the line to your AMDGPU .conf file in the Section «Device» block:

Option "VariableRefresh" "true"

Verify vrr_capable is set to 1 using xrandr:

xrandr will show the properties for all video output ports; make sure to look at the one that’s actually connected to your monitor — the other outputs will report vrr_capable: 0.

Multi-monitor configuration

Suppose you have a new 144Hz FreeSync capable monitor and want to use it as your primary monitor and connect your old 60Hz monitor as secondary monitor. In that case you may want to enable the AsyncFlipSecondaries option in your AMDGPU .conf file in the Section «Device» block:

Option "AsyncFlipSecondaries" "true"

This option is available since xorg-server release 21.1.0 and will allow synchronized page flips up to the highest refresh rate your primary monitor supports. Your secondary monitor(s) may exhibit tearing however.

Enable on NVIDIA

Using a Xorg conf file

This article or section needs expansion.

Via nvidia-settings

«Native» G-SYNC and validated G-SYNC Compatible monitors should automatically have VRR enabled. To check the state of your monitors, open nvidia-settings and navigate to your GPU (e.g. GPU 0), under which there will be an node for each active monitor (e.g. DP-0, HDMI-0). In each of those monitor frames, the G-SYNC Mode Available indicates the status of G-SYNC support, either: [4] [5]

  • G-SYNC, indicating that this is a «native» G-SYNC monitor. Full G-SYNC support is enabled by default.
  • G-SYNC Compatible, indicating that this is a validated G-SYNC Compatible monitor. G-SYNC support is enabled by default.
  • G-SYNC Unvalidated, indicating that this is an unvalidated G-SYNC Compatible monitor. G-SYNC support is not enabled by default. [6]
  • None, indicating that this monitor does not seem to support G-SYNC. Note that there are some FreeSync VRR monitors which are not G-SYNC compatible at all. [7]

If you have an unvalidated G-SYNC Compatible monitor, you can override NVIDIA’s default and enable VRR with it:

  • In nvidia-settings go to the X Server Display Configuration page, then under the Advanced button is the option to Allow G-SYNC on monitor not validated as G-SYNC Compatible. Click apply.
  • Now, under OpenGL settings, check Allow G-SYNC/G-SYNC Compatible.

Note: If a monitor did fail NVIDIA’s certification to be G-SYNC compatible, there may be issues with the experience such as poor image quality, flickering, or lack of VRR activation due to limited refresh rate range. [8]

Читайте также:  Установка telegram linux mint

Tip: In the same menu, you can check the show G-SYNC indicator option to display an indicator that G-SYNC is working in the top right corner.

Wayland configuration

GNOME

Warning: VRR patches for GNOME are still under development and may behave incorrectly or cause crashes.

Install mutter-vrr AUR and gnome-control-center-vrr AUR to use VRR in GNOME. VRR needs to be enabled for each supported monitor in the Displays settings. When running on a supported and enabled monitor, GNOME automatically enables VRR for all full screen applications.

KDE

KDE Wayland should automatically enable VRR for full screen applications [9].

Sway

Sway supports variable refresh rate. To enable it for all of your outputs you can add the following to the sway configuration, or apply the setting to on a per output basis:

You can verify that your display supports adaptive sync with swaymsg:

Output DP-1 'Display Name' Adaptive sync: enabled

Hyprland

Hyprland supports variable refresh rate. To enable it, you need to add or vrr = 1 [10] in your misc section of your hyprland.conf :

You can verify that your display supports adaptive sync with hyprctl:

Testing

VRRTest is a simple testing tool which should work for FreeSync and G-Sync. Install vrrtest-git AUR or, manually install love package, clone repository, then run

$ love /path/to/cloned/repository

With VRR off, if the application’s FPS is less than the monitor’s native refresh rate then the bars will stutter a lot since frames are being skipped. With VRR active, the bars will always move smoothly across the screen since the screen’s refresh rate will match the application’s refresh rate. Even with VRR functional you may experience tearing in which case you can also enable the TearFree option for AMDGPU; with both enabled there should be neither stuttering nor tearing (what is the nvidia equivalent?).

If you are using a Nvidia GPU, you can test G-SYNC compatibility with gl-gsync-demo AUR . This program will allow you to test VRR and Vsync so you can observe resulting effects. See project’s Readme for more information.

According to this page: «gl-gsync-demo is made with G-SYNC but that does not matter, it will test AMD adaptive sync just fine». However, it may still not work as expected for FreeSync testing.

Change VRR range of a FreeSync monitor

Freesync monitors usually have a limited range for VRR that are much lower than their max refresh rate. It should be possible to overclock the monitor to change the Freesync range.

Editing the EDID File

External Display Identification Data (EDID) stores driver information about your monitor. By default, this file is sent by your monitor and read on connect. You will need to extract this file using something like read-edid or nvidia-settings .

You can edit this file with wxedid AUR .

This article or section needs expansion.

Reason: This section needs verification from users with a freesync monitor please consider contributing. (Discuss in Talk:Variable refresh rate)

You may follow one of the guides of people changing the freesync range on Windows: [11][12]

Process of overclocking on Linux (works only on NVidia GPUs): [13]

Make a Xorg .conf file for your monitor and add a path to the custom EDID file you have edited. See xrandr to find find out the other information about your monitor.

/etc/X11/xorg.conf.d/10-monitor.conf
Section "Screen" Identifier "Screen0" Device "nvidia" # e.g. Radeon, nvidia Monitor "DP1" Option “CustomEDID” “MONITOR:/home/USER/Desktop/modified-edid.bin” EndSection

Note: Edit “MONITOR” in the file to be the correct display ID. You can get the display ID with the xrandr -–query command.

Читайте также:  Linux connect to android usb

Tips and Tricks

Remove applications from Blacklist

Mesa has a list of blacklisted applications to avoid unexpected behavior, you can edit this blacklist here:

/usr/share/drirc.d/00-mesa-defaults.conf

Limitations

  • Wayland is supported as of KDE 5.22 (any compatible GPU) and Sway (no Nvidia) [14][15]. GNOME Wayland is not yet supported [16].
  • The monitor must be plugged in via DisplayPort. Some displays which implement (part of) the HDMI 2.1 specification also support VRR over HDMI. This is supported by the Nvidia driver and is supported by the AMD driver (pre HDMI 2.1) in Kernel 5.13 and later [17].
  • If you want to use G-SYNC and possibly Freesync on X11, only the G-SYNC/Freesync monitor must be connected.
    • On X11, multiple monitors in a single X display will break G-SYNC/Freesync, however, this problem does not exist on Wayland.
    • A secondary monitor set as copy/duplicate of the primary monitor does not break G-SYNC/Freesync on the primary monitor.
    • If on X11, if you want to use multiple monitors and still use G-SYNC/Freesync, you can create a new X display which only covers the G-SYNC/Freesync monitor and run games there.

    Источник

    How to make custom refresh rate stay saved?

    I’m testing out 14.04 on a partition to see if I want to use it as my main desktop for when it’s fully released, but I’ve encountered some problems. I have a 144Hz monitor, so in the the Nvidia X Server Settings window I set the refresh rate to 144Hz and it works just fine. However, when I restart my computer those settings revert back to «auto» and I have to reset the refresh rate back to 144Hz each time I log into Ubuntu. How do I make the Nvidia settings stay set to 144Hz? The refresh rate settings also revert back to auto every time I go into full screen in Minecraft. I’ve searched Google and can’t seem to find any solution to these problems. I’m not open to any lectures about how 144Hz is pointless because the eye supposedly can’t see a difference beyond a certain refresh rate, so if you intend to lecture me on that incorrect knowledge then please be gone.

    The answer below will give you 144Hz but the problem will stay. Now you will have windows that move at 144Hz when you move them slow but when you move them faster, the windows will start lagging behind your mouse. I guess this is a problem with xorg or compiz now. Too hot hardware for such old software. Have to wait for Mir or wayland.

    If either of the solutions solved at least as much as you can do about the issue I’d ask that you mark either of them as successful, unless you have other reasons. As much as I look forward to Wayland I have to say OpenGL relies quite heavily on X at the minute so hopefully the core has compatibility for Wayland before I start to write any code for it lol.

    I’m very sorry but that doesn’t work. When I try to save xserver settings and reboot device, I have still the same problem.

    Источник

Оцените статью
Adblock
detector