Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enabling vrr or vfr causes weird stuff #8631

Open
1 task done
onlycs opened this issue Dec 3, 2024 · 6 comments
Open
1 task done

Enabling vrr or vfr causes weird stuff #8631

onlycs opened this issue Dec 3, 2024 · 6 comments
Labels
bug Something isn't working

Comments

@onlycs
Copy link

onlycs commented Dec 3, 2024

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

No

System Info and Version

System/Version info
Hyprland 0.45.0 built from branch  at commit e9a7fb8f91d23f1ac2671e55f74234dcec2ee1c6  (renderer: fix incorrect early return (8590)).
Date: Wed Nov 27 09:17:45 2024
Tag: v0.45.0-66-ge9a7fb8f, commits: 5499
built against aquamarine 0.5.0


flags set:
debug


System Information:
System name: Linux
Node name: theseus
Release: 6.12.1-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 22 Nov 2024 16:04:27 +0000


GPU information: 
c1:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c2) (prog-if 00 [VGA controller])


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:

======Config-Start======


Config File: /home/angad/.config/hypr/hyprland.conf: Read Succeeded
# This file sources other files in `hyprland` and `custom` folders
# You wanna add your stuff in file in `custom`

# Defaults
source=~/.config/hypr/hyprland/env.conf
source=~/.config/hypr/hyprland/execs.conf
source=~/.config/hypr/hyprland/general.conf
source=~/.config/hypr/hyprland/rules.conf
source=~/.config/hypr/hyprland/colors.conf
source=~/.config/hypr/hyprland/keybinds.conf

# Custom 
source=~/.config/hypr/custom/env.conf
source=~/.config/hypr/custom/execs.conf
source=~/.config/hypr/custom/general.conf
source=~/.config/hypr/custom/rules.conf
source=~/.config/hypr/custom/keybinds.conf



Config File: /home/angad/.config/hypr/hyprland/env.conf: Read Succeeded
# ######### Input method ########## 
# See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
env = QT_IM_MODULE, fcitx
env = XMODIFIERS, @im=fcitx
# env = GTK_IM_MODULE, wayland   # Crashes electron apps in xwayland
# env = GTK_IM_MODULE, fcitx     # My Gtk apps no longer require this to work with fcitx5 hmm  
env = SDL_IM_MODULE, fcitx
env = GLFW_IM_MODULE, ibus
env = INPUT_METHOD, fcitx

# ############ Themes #############
env = QT_QPA_PLATFORM, wayland
env = QT_QPA_PLATFORMTHEME, qt5ct
# env = QT_STYLE_OVERRIDE,kvantum
# env = WLR_NO_HARDWARE_CURSORS, 1

# ######## Screen tearing #########
# env = WLR_DRM_NO_ATOMIC, 1

# ############ Others #############



Config File: /home/angad/.config/hypr/hyprland/execs.conf: Read Succeeded
# Bar, wallpaper
# exec-once = ags &

# Core components (authentication, lock screen, notification daemon)
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || /usr/libexec/polkit-gnome-authentication-agent-1
exec-once = hypridle
exec-once = dbus-update-activation-environment --all
exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk
exec-once = hyprpm reload
exec-once = hyprpaper &
exec-once = sleep 2 && 1password --enable-features=UseOzonePlatform --ozone-platform=wayland --silent &
exec-once = blueman-applet &

# Clipboard: history
# exec-once = wl-paste --watch cliphist store &
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store

# Cursor
exec-once = hyprctl setcursor Bibata-Modern-Classic 24



Config File: /home/angad/.config/hypr/hyprland/general.conf: Read Succeeded
# MONITOR CONFIGi
monitor=eDP-1,highres,0x0,1.25
# monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area

# HDMI port: mirror display. To see device name, use `hyprctl monitors`
monitor=DP-4,highres,2048x0,1

input {
    # Keyboard: Add a layout and uncomment kb_options for Win+Space switching shortcut
    kb_layout = us
    # kb_options = grp:win_space_toggle
    numlock_by_default = true
    repeat_delay = 250
    repeat_rate = 35

    touchpad {
        natural_scroll = yes
        disable_while_typing = true
        clickfinger_behavior = true
        scroll_factor = 0.5
    }
    special_fallthrough = true
    follow_mouse = 1
}

debug {
    disable_logs = false
}

xwayland {
   force_zero_scaling = true
}

env = GDK_SCALE,1.25

binds {
    # focus_window_on_workspace_c# For Auto-run stuff see execs.confhange = true
    scroll_event_delay = 0
}

gestures {
    workspace_swipe = true
    workspace_swipe_distance = 700
    workspace_swipe_fingers = 4
    workspace_swipe_cancel_ratio = 0.2
    workspace_swipe_min_speed_to_force = 5
    workspace_swipe_direction_lock = true
    workspace_swipe_direction_lock_threshold = 10
    workspace_swipe_create_new = true
}

general {
    # Gaps and border
    gaps_in = 9 9 9 9
    gaps_out = 19 19 19 19
    gaps_workspaces = 50
    border_size = 1
    
    # Fallback colors
    col.active_border = rgba(0DB7D4FF)
    col.inactive_border = rgba(31313600)

    resize_on_border = true
    no_focus_fallback = true
    layout = dwindle
    
    #focus_to_other_workspaces = true # ahhhh i still haven't properly implemented this
    allow_tearing = true # This just allows the `immediate` window rule to work
}

dwindle {
	preserve_split = true
        # no_gaps_when_only = 1
	smart_split = false
	smart_resizing = false
}

decoration {
    rounding = 6
    
    blur {
        enabled = true
        xray = true
        special = false
        new_optimizations = true
        size = 14
        passes = 3
        brightness = 1
        noise = 0.01
        contrast = 1
        popups = true
        popups_ignorealpha = 0.6
    }
    # Shadow
#    drop_shadow = true
#    shadow_ignore_window = true
#    shadow_range = 20
#    shadow_offset = 0 2
#    shadow_render_power = 4
#    col.shadow = rgba(0000002A)
    
    # Shader
    # screen_shader = ~/.config/hypr/shaders/nothing.frag
    # screen_shader = ~/.config/hypr/shaders/vibrance.frag
    
    # Dim
    dim_inactive = false
    dim_strength = 0.1
    dim_special = 0
}

animations {
    enabled = true
    # Animation curves
    
    bezier = linear, 0, 0, 1, 1
    bezier = md3_standard, 0.2, 0, 0, 1
    bezier = md3_decel, 0.05, 0.7, 0.1, 1
    bezier = md3_accel, 0.3, 0, 0.8, 0.15
    bezier = overshot, 0.05, 0.9, 0.1, 1.1
    bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 
    bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
    bezier = menu_decel, 0.1, 1, 0, 1
    bezier = menu_accel, 0.38, 0.04, 1, 0.07
    bezier = easeInOutCirc, 0.85, 0, 0.15, 1
    bezier = easeOutCirc, 0, 0.55, 0.45, 1
    bezier = easeOutExpo, 0.16, 1, 0.3, 1
    bezier = softAcDecel, 0.26, 0.26, 0.15, 1
    bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
    # Animation configs
    animation = windows, 1, 3, md3_decel, popin 60%
    animation = windowsIn, 1, 3, md3_decel, popin 60%
    animation = windowsOut, 1, 3, md3_accel, popin 60%
    animation = border, 1, 10, default
    animation = fade, 1, 3, md3_decel
    # animation = layers, 1, 2, md3_decel, slide
    animation = layersIn, 1, 3, menu_decel, slide
    animation = layersOut, 1, 1.6, menu_accel
    animation = fadeLayersIn, 1, 2, menu_decel
    animation = fadeLayersOut, 1, 4.5, menu_accel
    animation = workspaces, 1, 7, menu_decel, slide
    # animation = workspaces, 1, 2.5, softAcDecel, slide
    # animation = workspaces, 1, 7, menu_decel, slidefade 15%
    # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
    animation = specialWorkspace, 1, 3, md3_decel, slidevert
}

misc {
    vfr = 0
    vrr = 0
    # layers_hog_mouse_focus = true
    focus_on_activate = true
    animate_manual_resizes = false
    animate_mouse_windowdragging = false
    enable_swallow = false
    swallow_regex = (foot|kitty|allacritty|Alacritty)
    
    disable_hyprland_logo = true
    force_default_wallpaper = 0
    new_window_takes_over_fullscreen = 2
    allow_session_lock_restore = true
    
    initial_workspace_tracking = false
}

# Overview
plugin {
    hyprexpo {
        columns = 3
        gap_size = 5
        bg_col = rgb(000000)
        workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1

        enable_gesture = false # laptop touchpad, 4 fingers
        gesture_distance = 300 # how far is the "max"
        gesture_positive = false
    }
}


Config File: /home/angad/.config/hypr/hyprland/rules.conf: Read Succeeded
# ######## Window rules ########
#windowrule = noblur,.*
# windowrule = opacity 0.89 override 0.89 override, .* # Applies transparency to EVERY WINDOW
#windowrule = float, ^(blueberry.py)$
#windowrule = float, ^(steam)$
#windowrule = float, ^(guifetch)$ # FlafyDev/guifetch
windowrulev2 = tile, class:(dev.warp.Warp)
windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
windowrule = center, title:^(Open File)(.*)$
windowrule = center, title:^(Select a File)(.*)$
windowrule = center, title:^(Choose wallpaper)(.*)$
windowrule = center, title:^(Open Folder)(.*)$
windowrule = center, title:^(Save As)(.*)$
windowrule = center, title:^(Library)(.*)$
windowrule = center, title:^(File Upload)(.*)$
windowrulev2 = pin, title:(LiveSplit)

# Dialogs
windowrule=float,title:^(Open File)(.*)$
windowrule=float,title:^(Select a File)(.*)$
windowrule=float,title:^(Choose wallpaper)(.*)$
windowrule=float,title:^(Open Folder)(.*)$
windowrule=float,title:^(Save As)(.*)$
windowrule=float,title:^(Library)(.*)$
windowrule=float,title:^(File Upload)(.*)$
windowrule=float,title:fluidsim
windowrule=float,1Password
windowrule=center,1Password

# Tearing
windowrule=immediate,.*\.exe
windowrulev2=immediate,class:(steam_app)

# No shadow for tiled windows
windowrulev2 = noshadow,floating:0

# ######## Layer rules ########
layerrule = xray 1, .*
# layerrule = noanim, .*
layerrule = noanim, walker
layerrule = noanim, selection
layerrule = noanim, overview
layerrule = noanim, anyrun
layerrule = noanim, indicator.*
layerrule = noanim, osk
layerrule = noanim, hyprpicker
layerrule = blur, shell:*
layerrule = ignorealpha 0.6, shell:*

layerrule = noanim, noanim
layerrule = blur, gtk-layer-shell
layerrule = ignorezero, gtk-layer-shell
layerrule = blur, launcher
layerrule = ignorealpha 0.5, launcher
layerrule = blur, notifications
layerrule = ignorealpha 0.69, notifications

# ags
layerrule = animation slide top, sideleft.*
layerrule = animation slide top, sideright.*
layerrule = blur, session

layerrule = blur, bar
layerrule = ignorealpha 0.6, bar
layerrule = blur, corner.*
layerrule = ignorealpha 0.6, corner.*
layerrule = blur, dock
layerrule = ignorealpha 0.6, dock
layerrule = blur, indicator.*
layerrule = ignorealpha 0.6, indicator.*
layerrule = blur, overview
layerrule = ignorealpha 0.6, overview
layerrule = blur, cheatsheet
layerrule = ignorealpha 0.6, cheatsheet
layerrule = blur, sideright
layerrule = ignorealpha 0.6, sideright
layerrule = blur, sideleft
layerrule = ignorealpha 0.6, sideleft
layerrule = blur, indicator*
layerrule = ignorealpha 0.6, indicator*
layerrule = blur, osk
layerrule = ignorealpha 0.6, osk



Config File: /home/angad/.config/hypr/hyprland/colors.conf: Read Succeeded
# exec = export SLURP_ARGS='-d -c FFDAD4BB -b 673B3444 -s 00000000'

general {
    col.active_border = rgba(F7DCDE39)
    col.inactive_border = rgba(A58A8D30)
}

misc {
    background_color = rgba(1D1011FF)
}

plugin {
    hyprbars {
        # Honestly idk if it works like css, but well, why not
        bar_text_font = Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif
        bar_height = 30
        bar_padding = 10
        bar_button_padding = 5
        bar_precedence_over_border = true
        bar_part_of_window = true

        bar_color = rgba(1D1011FF)
        col.text = rgba(F7DCDEFF)


        # example buttons (R -> L)
        # hyprbars-button = color, size, on-click
        hyprbars-button = rgb(F7DCDE), 13, 󰖭, hyprctl dispatch killactive
        hyprbars-button = rgb(F7DCDE), 13, 󰖯, hyprctl dispatch fullscreen 1
        hyprbars-button = rgb(F7DCDE), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special
    }
}

windowrulev2 = bordercolor rgba(FFB2BCAA) rgba(FFB2BC77),pinned:1

Config File: /home/angad/.config/hypr/hyprland/keybinds.conf: Read Succeeded
# Lines ending with `# [hidden]` won't be shown on cheatsheet
# Lines starting with #! are section headings

# Volume and Brightness
bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindle =, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindle =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-

bindle =, XF86MonBrightnessUp, exec, brightnessctl set '10+'
bindle =, XF86MonBrightnessDown, exec, brightnessctl set '10-'
bind =, XF86Calcuator, exec, echo test >> ~/test

# System Tools
bind = Super, V, exec, pkill fuzzel || cliphist list | fuzzel --no-fuzzy --dmenu | cliphist decode | wl-copy
bind =, Print, exec, grim -g "$(slurp)" - | swappy -f -
bind = Super, S,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png"
bind = Super, C, exec, hyprpicker -a
bind = Super, P, exec, 1password --quick-access

## Hyprland
# Move and Resize
bindm = Super, mouse:272, movewindow
bindm = Super, mouse:273, resizewindow
bind = Super, Q, killactive,
bind = Super+Shift, Q, exec, hyprctl kill # Pick and kill a window

# Window Modes
bind = Super, W, togglefloating,
bind = Super, G, fullscreen,

# Switch Workspaces
bind = Super, 1, workspace, 1
bind = Super, 2, workspace, 2
bind = Super, 3, workspace, 3
bind = Super, 4, workspace, 4
bind = Super, 5, workspace, 5
bind = Super, 6, workspace, 6
bind = Super, 7, workspace, 7
bind = Super, 8, workspace, 8
bind = Super, 9, workspace, 9
bind = Super, 0, workspace, 10

# Move Window to Workspace
bind = Super+Alt, 1, movetoworkspacesilent, 1
bind = Super+Alt, 2, movetoworkspacesilent, 2
bind = Super+Alt, 3, movetoworkspacesilent, 3
bind = Super+Alt, 4, movetoworkspacesilent, 4
bind = Super+Alt, 5, movetoworkspacesilent, 5
bind = Super+Alt, 6, movetoworkspacesilent, 6
bind = Super+Alt, 7, movetoworkspacesilent, 7
bind = Super+Alt, 8, movetoworkspacesilent, 8
bind = Super+Alt, 9, movetoworkspacesilent, 9
bind = Super+Alt, 0, movetoworkspacesilent, 10

# Move to Adjacent Workspace
bind = Super, Right, workspace, +1
bind = Super, Left, workspace, -1

# Move Window to Adjacent Workspace
bind = Super+Alt, Right, movetoworkspacesilent, +1
bind = Super+Alt, Left, movetoworkspacesilent, -1

## Media
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioPlay, exec, playerctl play-pause

## Apps
bind = Super, T, exec, kitty
bind = Super, Z, exec, Zed
bind = Super, E, exec, nautilus --new-window
bind = Super, F, exec, firefox
bind = Super, X, exec, gnome-text-editor --new-window
bind = Super, I, exec, XDG_CURRENT_DESKTOP="gnome" gnome-control-center
bind = Ctrl+Shift, Escape, exec, gnome-system-monitor
bind = Super, Super_L, exec, ags -t launcher
bind = , XF86PowerOff, exec, ags -t powermenu


Config File: /home/angad/.config/hypr/custom/env.conf: Read Succeeded
# You can put extra environment variables here
# https://wiki.hyprland.org/Configuring/Environment-variables/


Config File: /home/angad/.config/hypr/custom/execs.conf: Read Succeeded
# You can make apps auto-start here
# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing


Config File: /home/angad/.config/hypr/custom/general.conf: Read Succeeded
# Put general config stuff here
# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/

Config File: /home/angad/.config/hypr/custom/rules.conf: Read Succeeded
# You can put custom rules here
# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/
# Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/


Config File: /home/angad/.config/hypr/custom/keybinds.conf: Read Succeeded
# You can put your preferred keybinds here
# https://wiki.hyprland.org/Configuring/Binds/
======Config-End========

Description

Enabling vfr causes

  • weird pink glitchy artifacts
  • some lag

Enabling vrr causes

  • a lot of stutter and lag
  • parts of windows will remain from previous frames (e.g. 7 borders from the same window when i moved it to a different workspace)

Enabling both causes windows to freeze entirely until I resize, move, switch to windowed mode, etc

  • key/mouse events for handled, e.g. i typed in hyprctl dispatch exit + enter into kitty and hyprland exited, but the kitty window wasn't updating (as if it were an image)

How to reproduce

Open hyprland and enable vfr or vrr or both.

Crash reports, logs, images, videos

xdg_runtime_dir_hypr.tar.gz
~/.cache/hyprland did not exist.

@onlycs onlycs added the bug Something isn't working label Dec 3, 2024
@vaxerski
Copy link
Member

vaxerski commented Dec 4, 2024

wtf is Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1?

@sergeyshadok
Copy link

For me, when I enable vfr, display outputs 0-1fps even with keyboard input, only when I use touchpad it "unfreezes" and outputs image normally. Only happens in 120hz mode. Doesn't happen in Firefox for some unknown reason? I just gave up and disabled it and problem was gone, otherwise it's just impossible to type things in terminal without moving cursor with touchpad. But it also happens in most DEs and WMs.

@onlycs
Copy link
Author

onlycs commented Dec 5, 2024

wtf is Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1?

Framework 16 integrated graphics (780m iirc)

@sergeyshadok
Copy link

sergeyshadok commented Dec 8, 2024

I also have "wierd pink glitchy artifacts" even with disabled vfr and vrr and I also have 780M GPU, they rarely occur in most apps but for example in Reaper (xwayland) they occur pretty often.

@wwxiaoqi
Copy link

wwxiaoqi commented Dec 8, 2024

I also encountered “weird pink glitchy artifacts”. I found that VFR or VRR conflicts with AQ, leading to this phenomenon.

And in the log, there will be an error message: [ERR] [AQ] atomic drm request: failed to commit: Device or resource busy, flags: ATOMIC_NONBLOCK PAGE_FLIP_EVENT

My Hyprland version is 0.45.2-3.

The solution is to use the following configuration:

cursor {
    # Makes HW cursors use a CPU buffer.
    # Required on Nvidia to have HW cursors.
    # Experimental
    # use_cpu_buffer = true
    allow_dumb_copy = false
    
    no_hardware_cursors = true
}

env = AQ_NO_MODIFIERS,1

render {
    # Whether explicit sync support is enabled
    explicit_sync = 0
    # Whether explicit synchronization support is enabled for the KMS tier
    explicit_sync_kms = 0
    # Enable direct scanning
    # Try to reduce latency when there is only one full-screen application on the screen
    direct_scanout = false
}

misc {
    # Set to 0 or 1 to disable the anime mascot wallpapers
    force_default_wallpaper = -1
    # If true disables the random hyprland logo / anime girl background. :(
    disable_hyprland_logo = false

    # https://github.com/hyprwm/Hyprland/issues/8631
    vfr = 0
    vrr = 0
}

@sergeyshadok
Copy link

sergeyshadok commented Dec 8, 2024

env = AQ_NO_MODIFIERS,1

For me, unfortunately, setting this variable (and the whole config from previous comment) introduced even more "artifacts", but now they are not pink but look like the wallpaper I have, so they look like blinking strips of my wallpaper image.

I have tried to record these artifacts (both pink and image) with GPU Screen Recorder at 120 fps (bc I have 120hz panel), but they are not shown in any video I recorded, even though I definitely saw them while recording.


EDIT: For everyone who is facing the same issue with vfr and vrr, try setting

amdgpu.dcdebugmask=0x10

kernel parameter. It fixed the issue for me and now I can enable vfr and vrr and I don't see any pink glitches anymore. So maybe this issue is not related to Hyprland.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants