hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.89k stars 849 forks source link

FSR3 Frame generation causes VRR to go haywire #7928

Open SeekerOfAsh opened 2 days ago

SeekerOfAsh commented 2 days ago

Already reported ? *

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit e20aef7d53fcde1470e8d7672e6a03d814fca97f (). Date: 2024-09-26 Tag: , commits: 5271 built against aquamarine 0.4.1 flags: (if any) System Information: System name: Linux Node name: SmelterDeamon Release: 6.10.10-xanmod1 Version: #1-NixOS SMP PREEMPT_DYNAMIC Tue Jan 1 00:00:00 UTC 1980 GPU information: 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] [1002:744c] (rev c8) (prog-if 00 [VGA controller]) os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20240923.30439d9" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: ======Config-Start====== Config File: /home/ashen_one/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/4a86f7kq7757fjwf5zzwk0jxixn4330n-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target animations { animation=windows, 1, 5, default animation=windowsIn, 1, 5, default animation=windowsOut, 1, 5, default animation=border, 1, 3, default animation=borderangle, 1, 3, default animation=fade, 1, 5, default animation=workspaces, 1, 3, default enabled=true } binds { movefocus_cycles_fullscreen=false } decoration { drop_shadow=false rounding=3 } general { border_size=3 col.active_border=rgb(d8dee9) col.inactive_border=rgba(111216aa) gaps_in=5 gaps_out=5 hover_icon_on_border=false layout=master resize_on_border=false } input { accel_profile=flat follow_mouse=1 kb_layout=ch kb_variant=de_nodeadkeys numlock_by_default=true sensitivity=0 } master { mfact=0.500000 new_status=slave orientation=center } misc { force_default_wallpaper=2 } xwayland { enabled=true } bind=SUPER, Return, exec, /nix/store/acv2fbd6pq0c8d330am9r1sb87ipklrd-terminator-2.1.4/bin/terminator bind=SUPER, E, exec, /nix/store/la64b3fm6ggw8vca9yn8c132sk1i2ylx-pcmanfm-1.3.2/bin/pcmanfm bind=SUPER, B, exec, /nix/store/7b66i7r5ivp39x09azass6z4k745ihgd-librewolf-130.0-3/bin/librewolf bind=SUPER, R, exec, pkill wofi; sleep 0.1 && wofi -S drun bind=SUPER, L, exec, pkill wofi; sleep 0.1 && ~/.dotfiles/scripts/wofi-power.sh bind=SUPER, K, killactive, bind=SUPER, F, fullscreen, bind=SUPER SHIFT, L, exit, bind=SUPER SHIFT, V, togglefloating, bind=SUPER, left, movefocus, l bind=SUPER, right, movefocus, r bind=SUPER, up, movefocus, u bind=SUPER, down, movefocus, d bind=SUPER SHIFT, left, movewindow, l bind=SUPER SHIFT, right, movewindow, r bind=SUPER SHIFT, up, movewindow, u bind=SUPER SHIFT, down, movewindow, d bind=SUPER CONTROL_L, left, layoutmsg, rollnext bind=SUPER CONTROL_L, right, layoutmsg, rollprev bind=SUPER, home, layoutmsg, swapwithmaster bind=SUPER, PAGE_DOWN, exec, hyprnome -k bind=SUPER, PAGE_UP, exec, hyprnome -p -k -n bind=SUPER SHIFT, PAGE_DOWN, exec, hyprnome -m bind=SUPER SHIFT, PAGE_UP, exec, hyprnome -p -m -n bind=SUPER CONTROL_L, PAGE_UP, movewindow, mon:-1 bind=SUPER CONTROL_L, PAGE_DOWN, movewindow, mon:+1 bind=SUPER, S, togglespecialworkspace, magic bind=SUPER SHIFT, S, movetoworkspace, special:magic bind=SUPER CONTROL_L, S, movetoworkspace, e+0 bind=SUPER ALT_L, PAGE_UP, workspace, e+1 bind=SUPER ALT_L, PAGE_DOWN, workspace, e-1 bind=SUPER, F9, exec, hyprshot -m region --freeze bind=SUPER, F10, exec, hyprshot -m window -m active --freeze bind=SUPER, F11, exec, hyprshot -m output -m active --freeze bind=SUPER SHIFT, F5, exec, hyprctl clients | tee ~/Documents/client.txt bindl=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindl=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindl=, XF86AudioPlay, exec, playerctl play-pause bindl=, XF86AudioPrev, exec, playerctl previous bindl=, XF86AudioNext, exec, playerctl next bindl=, XF86AudioRewind, exec, playerctl position 5- bindl=, XF86AudioForward, exec, playerctl position 5+ bindm=SUPER, mouse:272, movewindow bindm=SUPER, mouse:273, resizewindow env=CLUTTER_BACKEND,wayland env=GDK_BACKEND,wayland,x11,* env=QT_QPA_PLATFORM,wayland;xcb env=QT_AUTO_SCREEN_SCALE_FACTOR,1 env=QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env=XCURSOR_SIZE,24 env=HYPRSHOT_DIR,$XDG_PICTURES_DIR/sc exec-once=/nix/store/y6r0ap8iarbr44h4jph1jkbkgr1a3p24-pantheon-agent-polkit-8.0.0/libexec/policykit-1-pantheon/io.elementary.desktop.agent-polkit exec-once=/nix/store/faa34wcxcn0i24sxdhf32pvn89sadjjd-blueman-2.4.3/bin/blueman-applet exec-once=/nix/store/1cw13n4myvqzg542ijlk3rbyck2ac14r-network-manager-applet-1.36.0/bin/nm-applet --indicator exec-once=/nix/store/xlg7jy76ysawq8lfshngsz76kp01n3v8-hyprpaper-0.7.1/bin/hyprpaper exec-once=/nix/store/k21i7rm1jdpnrcjyh7wdaakgqby0xbiy-SwayNotificationCenter-0.10.1/bin/swaync exec-once=/nix/store/k83jp5hhszwl3lmdvvmaz3r8dgxr6869-waybar-0.11.0/bin/waybar monitor=desc:Samsung Electric Company Odyssey G95SC H1AK500000, 5120x1440@120.00, 1440x640, 1 monitor=desc:Invalid Vendor Codename - RTK Verbatim MT14 demoset-1, preferred, 2720x2080, 1 monitor=desc:Acer Technologies ED323QUR, preferred, 0x0, 1, transform, 3 monitor=, preferred, auto, 1 windowrulev2=workspace 1 silent, class:^(steam_app_.*)$ windowrulev2=immediate, class:^(steam_app_.*)$ windowrulev2=fullscreenstate 2 2, floating:1, class:^(steam_app_.*)$ windowrulev2=center 1, floating:1, xwayland:0, title:^(.*)$ windowrulev2=float, floating:0, title:^([O-o]pen.*)$ windowrulev2=float, floating:0, title:^([L-l]oad.*)$ windowrulev2=float, floating:0, title:^([S-s]ave.*)$ windowrulev2=float, floating:0, title:^([S-s]elect.*)$ windowrulev2=float, floating:0, title:^([C-c]hoose.*)$ windowrulev2=size 70% 70%, floating:1, title:^([O-o]pen.*)$ windowrulev2=size 70% 70%, floating:1, title:^([S-s]ave.*)$ windowrulev2=size 70% 70%, floating:1, title:^([L-l]oad.*)$ windowrulev2=size 70% 70%, floating:1, title:^([S-s]elect.*)$ windowrulev2=size 70% 70%, floating:1, title:^([C-c]hoose.*)$ windowrulev2=workspace 22 silent, title:^(Steam)$ windowrulev2=workspace 23 silent, title:^(Heroic Games Launcher)$ windowrulev2=workspace 24 silent, title:^(CoreCtrl)$ windowrulev2=workspace 25 silent, title:^(Lollypop)$ windowrulev2=workspace 42 silent, class:^(vesktop)$ windowrulev2=workspace special:magic, class:^(terminator)$ workspace=1, border:false, rounding:false workspace=1, monitor:desc:Samsung Electric Company Odyssey G95SC H1AK500000 workspace=2, monitor:desc:Samsung Electric Company Odyssey G95SC H1AK500000, default:true, persistent:true workspace=22, monitor:desc:Invalid Vendor Codename - RTK Verbatim MT14 demoset-1, default:true, persistent:true workspace=23, monitor:desc:Invalid Vendor Codename - RTK Verbatim MT14 demoset-1 workspace=24, monitor:desc:Invalid Vendor Codename - RTK Verbatim MT14 demoset-1 workspace=25, monitor:desc:Invalid Vendor Codename - RTK Verbatim MT14 demoset-1 workspace=42, monitor:desc:Acer Technologies ED323QUR, default:true, persistent:true ======Config-End======== ```

Description

FSR3 frame generation in supported games causes VRR to go haywire, resulting in the monitors fps counter jumping between max refresh rate and a random lower values, instead of closely matching the FPS output of the game. This issue can be observed in Remnant 2, Lords of the Fallen and Cyberpunk 2077. When FSR3 frame generation is disabled, VRR behaves as expected.

Here is my current nixos config.

How to reproduce

  1. Enable VRR.
  2. Start a game that supports FSR3 frame generation and enable it.
  3. Open the refresh rate counter of the monitor and mangohud while VRR and frame generation are active.
  4. Make sure the fps of the game is stable.
  5. The result should be mangohud displaying consistent FPS, while the refresh rate of the monitor goes haywire.

Crash reports, logs, images, videos

FSR3 frame generation with VRR active. FSR3 frame generation disabled with VRR active.