Hyprland: Random flickering/artifacting when opengl introspection is not needed

Hyprland Version

Hyprland, built from branch main at commit 99ca26d4eb84e0071264713902e5b287fcab392e (hooksystem: fix missed log include). Tag: v0.32.3-84-g99ca26d4

flags: (if any) debug

Bug or Regression?

Regression

Description

Similar to #3952. Weird flickering artifacts in lower right quadrant of screen. Bisected to commit aedcade68dd0615fd919a7249633a554d0accd81

System:
  Host: gentoo Kernel: 6.6.2-gentoo arch: x86_64 bits: 64 Desktop: Hyprland
    Distro: Gentoo Base System release 2.14
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: TUF GAMING Z790-PLUS WIFI v: Rev 1.xx
    serial: <superuser required> UEFI: American Megatrends v: 1220
    date: 07/28/2023
CPU:
  Info: 24-core (8-mt/16-st) model: 13th Gen Intel Core i9-13900KS bits: 64
    type: MST AMCP cache: L2: 32 MiB
  Speed (MHz): avg: 837 min/max: 800/5600:6000:4300 cores: 1: 1100 2: 800
    3: 800 4: 800 5: 800 6: 800 7: 1100 8: 800 9: 1100 10: 1100 11: 800 12: 800
    13: 800 14: 800 15: 800 16: 800 17: 800 18: 800 19: 800 20: 801 21: 800
    22: 800 23: 800 24: 800 25: 800 26: 800 27: 800 28: 800 29: 800 30: 800
    31: 800 32: 800
Graphics:
  Device-1: NVIDIA AD102 [GeForce RTX 4090] driver: nvidia v: 545.29.06
  Display: wayland server: Xwayland v: 21.1.99 compositor: Hyprland driver:
    X: loaded: nvidia gpu: nvidia,nvidia-nvswitch resolution: 1: 2560x1440~165Hz
    2: 3840x2160~160Hz
  API: EGL v: 1.5 drivers: nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 vendor: nvidia v: 545.29.06 renderer: NVIDIA GeForce
    RTX 4090/PCIe/SSE2
  API: Vulkan v: 1.3.268 drivers: nvidia surfaces: xcb,xlib,wayland
debug:disable_logs = false

exec-once = waybar & swaybg -o \* -i ~/Pictures/Wallpapers/forest_sunset_pink.jpg -m fill & swayidle -w
exec-once = /usr/libexec/polkit-gnome-authentication-agent-1
exec-once = udiskie -t
exec-once = foot spotify_player & foot nvtop & foot btop

exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store

monitor=DP-3,3840x2160@159.975,2560x0,1.5
monitor=DP-2,2560x1440@164.958,0x0,1

# NVIDIA 
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSORS,1
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DEKSTOP,Hyprland
# try again when latest gamescope works with 535/545
#env = XWAYLAND_NO_GLAMOR,1 # with this you'll need to use gamescope for gaming

xwayland {
    force_zero_scaling = true
}
env = GDK_SCALE,1.5
env = QT_SCALE_FACTOR,1.5
env = ELM_SCALE,1.5
env = XCURSOR_SIZE,24
env = XCURSOR_THEME,Sunity-cursors

env = TERM,foot
env = TERMINAL,foot

input {
    follow_mouse = 1
    kb_options=ctrl:nocaps
}

general {
    gaps_in = 8
    gaps_out = 15
    border_size = 2
    col.active_border = rgb(cdd6f4)
    col.inactive_border = rgb(11111b)
    layout = master
}

decoration {
  rounding = 5
}

animations {
    enabled = yes
    #easeOutExpo
    bezier = myBezier, 0.22, 1, 0.36, 1

    animation = windows, 1, 7, myBezier, slide
    animation = windowsOut, 1, 7, myBezier, slide
    animation = border, 1, 7, myBezier
    animation = fade, 1, 1, myBezier
    animation = fadeDim, 0
    animation = workspaces, 1, 5, default
    animation = specialWorkspace, 1, 5, default, slidefadevert 50%
}

master {
}

misc {
  force_default_wallpaper = 0
  vrr = 1
  allow_session_lock_restore = true
}

workspace=1,monitor:DP-2,default:true,persistent:true
workspace=2,monitor:DP-3,default:true,persistent:true
workspace=3,monitor:DP-3,default:true,persistent:true
workspace=special, gapsin:70, gapsout:120, on-created-empty:foot
windowrule = float, Rofi
windowrule = noborder, Rofi
windowrule = workspace 3 silent, ^(steam)$
windowrule = workspace 3 silent, ^(discord)$
windowrule = fullscreen,title:^(Steam Big Picture Mode)$
windowrule = tile,title:^(Old School RuneScape)$

$mainMod = SUPER

# keybind for Master layout
bind = SUPER_SHIFT, SPACE, layoutmsg, orientationnext
bind = $mainMod, comma, layoutmsg, addmaster
bind = $mainMod, period, layoutmsg, removemaster
bind = $mainMod, SPACE, layoutmsg, swapwithmaster

bind = $mainMod, RETURN, exec, foot
bind = $mainMod SHIFT, C, killactive
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, R, exec, sh $HOME/.config/rofi/bin/launcher
bind = $mainMod SHIFT, R, exec, sh $HOME/.config/rofi/bin/runner
bind = $mainMod, P, exec, sh $HOME/.config/rofi/bin/powermenu
bind = $mainMod, V, togglefloating, 
bind = $mainMod, F, fullscreen
bind = $mainMod, W, exec, pkill -SIGUSR1 '^waybar$'
bind = $mainMod, C, exec, cliphist list | sh $HOME/.config/rofi/bin/clipboard | cliphist decode | wl-copy

# volume control
bind = $mainMod, MINUS, exec, amixer sset Master 5%-;
bind = $mainMod, EQUAL, exec, amixer sset Master 5%+;

# screenshot
bind = $mainMod, A, exec, shotname=$(date '+%Y-%m-%d-%H:%M:%S').png && grim ~/Pictures/Screenshots/$shotname && dunstify -u low --replace=699 "Screenshot ${shotname} Saved."
bind = $mainMod, S, exec, shotname=$(date '+%Y-%m-%d-%H:%M:%S').png && grim -o "$(hyprctl activeworkspace | grep -m1 "DP-" | cut -d' ' -f7 | sed s/://g)" ~/Pictures/Screenshots/$shotname && dunstify -u low --replace=699 "Screenshot ${shotname} Saved."
bind = $mainMod SHIFT, S, exec, shotname=$(date '+%Y-%m-%d-%H:%M:%S').png && grim -g "$(slurp)" ~/Pictures/Screenshots/$shotname && dunstify -u low --replace=699 "Screenshot ${shotname} Saved."

bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

#vim bindings for move focus
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d

bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, Z, togglespecialworkspace

bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, Z, movetoworkspace, special

bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d

#vim bindings for move window
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d

exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

How to reproduce

Most easily reproduce with 2 windows in master/slave layout – in my case, Firefox as master and foot as slave. Do something in the master window like play a video, change tabs, etc.

Crash reports, logs, images, videos

hyprland.log

About this issue

  • Original URL
  • State: closed
  • Created 7 months ago
  • Comments: 30 (27 by maintainers)

Most upvoted comments

oke, great, closing then 😃

@BendTheKn33 for me the last usable commit is e40e486f61f2643578b9977b86f408799dbc75fd, so you may try rolling back to that for time being unless there are things in later commits you absolutely need. (Technically, 802ab58f8a129b42d61ec13898fd978e0920f7d8 doesn’t have the issue, but it does have the black cursor issue / resolution issue)