Open Gwenodai opened 1 month ago
yes I have a 6700xt and those artifacts do show up, that's why ds is disabled by default. Likely synchronization is broke
@Gwenodai Did ya tried ds with implicit sync? In my case buckshot roulette and ultrakill artifacts with ds and explicit sync enabled, but with implicit sync it doesn't
@Honkazel I saw artifacting both with and without explicit sync during my testing.
@Honkazel though one thing I did notice was that my RX470 showed what looked like tearing instead of artifacting with vrr test in the same scenario I would have gotten artifacting on my 6700XT. I've not actually tested how the RX470 does with games though as I only use it for general desktop use. That's now something I'm curious to test later.
Already reported ? *
Regression?
No
System Info and Version
System/Version info
```sh Hyprland 0.44.0 built from branch main at commit 1822707c7e7394ce8c7572f2fe890763a307f499 (). Date: Sat Oct 12 04:56:46 2024 Tag: , commits: 5332 built against aquamarine 0.4.2 flags set: debug System Information: System name: Linux Node name: gwen-x570 Release: 6.11.3-200_tkg_zen2_preempt.fc40.x86_64 Version: #1 SMP PREEMPT_DYNAMIC TKG Fri Oct 11 09:23:32 UTC 2024 GPU information: 05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev cf) (prog-if 00 [VGA controller]) 0c:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c1) (prog-if 00 [VGA controller]) os-release: NAME="Fedora Linux" VERSION="40 (Forty)" ID=fedora VERSION_ID=40 VERSION_CODENAME="" PLATFORM_ID="platform:f40" PRETTY_NAME="Fedora Linux 40 (Forty)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:40" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=40 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=40 SUPPORT_END=2025-05-13 plugins: ======Config-Start====== Config File: /home/gwen/.config/hypr/hyprland.conf: Read Succeeded monitor=,preferred,auto,auto source=~/.config/hypr/config/variables.conf source=~/.config/hypr/config/startup.conf source=~/.config/hypr/config/settings.conf source=~/.config/hypr/config/animations.conf source=~/.config/hypr/config/displays.conf source=~/.config/hypr/config/keybinds.conf source=~/.config/hypr/config/rules.conf Config File: /home/gwen/.config/hypr/config/variables.conf: Read Succeeded env = XCURSOR_THEME,Vimix-cursors env = XCURSOR_SIZE,24 env = GDK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb env = QT_QPA_PLATFORMTHEME, qt5ct env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 # env = SDL_VIDEODRIVER,wayland env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland # env = AQ_DRM_DEVICES,/dev/dri/card1 # Use RX 470 instead of 6700 XT Config File: /home/gwen/.config/hypr/config/startup.conf: Read Succeeded $scripts = $HOME/.config/hypr/scripts # wallpaper exec-once = swww query || swww init # Core components (authentication, lock screen, notification daemon) 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 = sleep 1 && systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Clipboard: history exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store # Special startup script exec-once = $scripts/specialStartup.sh Config File: /home/gwen/.config/hypr/config/settings.conf: Read Succeeded # monitor = , preferred, auto, 1 input { kb_layout = us numlock_by_default = true repeat_delay = 250 repeat_rate = 35 sensitivity = 0.7 accel_profile = flat mouse_refocus = true float_switch_override_focus = 1 special_fallthrough = false follow_mouse = 1 } cursor { no_hardware_cursors = false inactive_timeout = 3 default_monitor = DP-1 no_break_fs_vrr = false min_refresh_rate = 24 } binds { workspace_back_and_forth=1 scroll_event_delay = 0 } general { # Gaps and border no_border_on_floating = false gaps_in = 3 gaps_out = 3 gaps_workspaces = 50 border_size = 2 # Colours col.active_border = rgba(ff00ad85) col.inactive_border = rgba(59595900) resize_on_border = false extend_border_grab_area = false hover_icon_on_border = false # no_focus_fallback = true layout = dwindle allow_tearing = false } dwindle { preserve_split = true pseudotile = true smart_split = false smart_resizing = true } decoration { rounding = 20 active_opacity = 1.0 inactive_opacity = 0.9 fullscreen_opacity = 1.0 blur { enabled = true xray = false special = true new_optimizations = true size = 5 passes = 3 brightness = 0.8 noise = 0.01 contrast = 1 ignore_opacity = false popups = true popups_ignorealpha = 0.6 } # Shadow drop_shadow = true shadow_ignore_window = true shadow_range = 16 shadow_offset = 2 2 shadow_render_power = 2 col.shadow = rgba(00000076) # Dim dim_inactive = false dim_strength = 0.1 dim_special = 0 } render { explicit_sync = 1 explicit_sync_kms = 1 direct_scanout = true } misc { vfr = true vrr = 2 focus_on_activate = false animate_manual_resizes = false animate_mouse_windowdragging = false enable_swallow = false # swallow_regex = (kitty|YACReaderLibrary) mouse_move_enables_dpms = true key_press_enables_dpms = true disable_hyprland_logo = true force_default_wallpaper = 0 new_window_takes_over_fullscreen = 0 initial_workspace_tracking = 0 render_unfocused_fps = 5 } Config File: /home/gwen/.config/hypr/config/animations.conf: Read Succeeded 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 = windowsMove, 1, 3, md3_decel, slide 60% animation = border, 1, 10, default animation = fade, 1, 3, md3_decel animation = layersIn, 1, 3, menu_decel, slide animation = layersOut, 1, 1.6, menu_accel animation = fadeLayersIn, 1, 3, menu_decel animation = fadeLayersOut, 1, 1.6, menu_accel animation = workspaces, 1, 7, menu_decel, slidefade 10% animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 80% } Config File: /home/gwen/.config/hypr/config/displays.conf: Read Succeeded monitor=desc:ViewSonic Corporation XG2401 SERIES 0x01010101,1920x1080@143.85,0x0,1.0 # Left monitor=desc:AOC 2260W BJGD79A000241,1920x1080@60.0,1920x300,1.0, # Right monitor=desc:Philips Consumer Electronics Company PHILIPS FTV 0x01010101,disabled # TV Config File: /home/gwen/.config/hypr/config/keybinds.conf: Read Succeeded #################### Variables ################### $terminal = kitty --single-instance $fileManager = nemo $webBroswer = google-chrome $menu = pkill rofi || rofi -show drun -display-drun "" -icon-theme "Papirus Dark" -show-icons $menu2 = pkill rofi || rofi -show run -display-run "" -icon-theme "Papirus Dark" -show-icons ################### keybinds ################### # Volume bindle = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise bindle = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower bindl = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle ################################### Applications ################################### # Apps: just normal apps bind = Super, Q, exec, $terminal bind = Super, E, exec, $fileManager bind = Super, W, exec, $webBroswer bind = Super, G, exec, swaync-client -t -sw # Apps: Settings and config bind = Control+Shift, Escape, exec, flatpak run net.nokyan.Resources # Actions bind = Super+Shift, P, pseudo, # dwindle bind = Super, Z, togglesplit, # dwindle bind = Super, C, killactive, bind = Super, V, togglefloating, bind = Super+Shift, V, exec, $scripts/pin.sh bind = Super, Tab, exec, ags -t overview # open overview # bind = Super, Tab, overview:toggle, all # open overview # Screenshot, Color picker, Clipboard history bind = Control, Print, exec, $HOME/.local/bin/hyprshot -m window -m active -o $HOME/Documents/Pictures/Screenshots | wl-copy # Current window bind = Control_Shift, Print, exec, $HOME/.local/bin/hyprshot -F -m region -o $HOME/Documents/Pictures/Screenshots | wl-copy # Selectable region bind = , Print, exec, $HOME/.local/bin/hyprshot -m output -m active -o $HOME/Documents/Pictures/Screenshots | wl-copy # Current screen bind = Super+Control, C, exec, hyprpicker -a bind = Super+Control, V, exec, pkill rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy # Media bindl= ,XF86AudioPlay, exec, playerctl play-pause bindl= ,XF86AudioStop, exec, playerctl stop bindl= ,XF86AudioNext, exec, playerctl next bindl= ,XF86AudioPrev, exec, playerctl previous # App launchers bind = Super, R, exec, $menu bind = Super+Shift, R, exec, $menu2 ##################################### Special keybinds ##################################### # Refresh waybar, swaync, rofi bind = Control+Super, R, exec, $scripts/refresh.sh # Wallpapers bind = Super+Shift, W, exec, $scripts/wallpaperSelect.sh # Select wallpaper to apply # Waybar / Bar related bind = Super, B, exec, killall -SIGUSR1 waybar # Toggle hide/show waybar ########################### Keybinds for Hyprland ############################ # Swap windows bind = Super+Shift, left, movewindow, l bind = Super+Shift, right, movewindow, r bind = Super+Shift, up, movewindow, u bind = Super+Shift, down, movewindow, d # Move focus bind = Super, left, movefocus, l bind = Super, right, movefocus, r bind = Super, up, movefocus, u bind = Super, down, movefocus, d bind = Super, Space, exec, $scripts/swapWorkspaces.sh "DP-1" "DP-2" # Workspace switch with arrows bind = Control+Super, right, workspace, +1 bind = Control+Super, left, workspace, -1 # Window split ratio binde = Super, Minus, splitratio, -0.1 binde = Super, Equal, splitratio, 0.1 binde = Super, Semicolon, splitratio, -0.1 binde = Super, Apostrophe, splitratio, 0.1 # Fullscreen bind = Super, F, fullscreen, 0 bind = Super, D, fullscreen, 1 # bind = Super_Alt, F, fakefullscreen # Switching bind = Super, 1, focusworkspaceoncurrentmonitor, 1 bind = Super, 2, focusworkspaceoncurrentmonitor, 2 bind = Super, 3, focusworkspaceoncurrentmonitor, 3 bind = Super, 4, focusworkspaceoncurrentmonitor, 4 bind = Super, 5, focusworkspaceoncurrentmonitor, 5 bind = Super, 6, focusworkspaceoncurrentmonitor, 6 bind = Super, 7, focusworkspaceoncurrentmonitor, 7 bind = Super, 8, focusworkspaceoncurrentmonitor, 8 bind = Super, 9, focusworkspaceoncurrentmonitor, 9 bind = Super, 0, focusworkspaceoncurrentmonitor, 10 bind = Super, X, focusworkspaceoncurrentmonitor, 10 # Game workspace bind = Super, S, togglespecialworkspace, bind = Super, bracketright, togglespecialworkspace, game # Game workspace bind = Super, A, togglespecialworkspace, alt bind = Alt, Tab, cyclenext bind = Alt, Tab, bringactivetotop, # bring it to the top # Move window to workspace Super + Alt + [0-9] bind = Super+Shift, 1, movetoworkspacesilent, 1 bind = Super+Shift, 2, movetoworkspacesilent, 2 bind = Super+Shift, 3, movetoworkspacesilent, 3 bind = Super+Shift, 4, movetoworkspacesilent, 4 bind = Super+Shift, 5, movetoworkspacesilent, 5 bind = Super+Shift, 6, movetoworkspacesilent, 6 bind = Super+Shift, 7, movetoworkspacesilent, 7 bind = Super+Shift, 8, movetoworkspacesilent, 8 bind = Super+Shift, 9, movetoworkspacesilent, 9 bind = Super+Shift, 0, movetoworkspacesilent, 10 bind = Super+Shift, X, movetoworkspacesilent, 10 # Game workspace bind = Super+Shift, S, movetoworkspacesilent, special bind = Super+Shift, bracketright, movetoworkspacesilent, special:game # Game workspace bind = Super+Shift, A, movetoworkspacesilent, special:alt # Scroll through existing workspaces with (Control) + Super + scroll bind = Super, mouse_up, workspace, e+1 bind = Super, mouse_down, workspace, e-1 bind = Control+Super, mouse_up, workspace, +1 bind = Control+Super, mouse_down, workspace, -1 # Move/resize windows with Super + LMB/RMB and dragging bindm = Super, mouse:272, movewindow bindm = Super, mouse:273, resizewindow Config File: /home/gwen/.config/hypr/config/rules.conf: Read Succeeded ######## Window rules ######## # Fullscreen/Pinned windows windowrulev2 = bordercolor rgba(FFB2BCAA),pinned:1 windowrulev2 = bordercolor rgba(00fbff85),fullscreen:1 # Supress maximize events windowrulev2 = suppressevent maximize, class:.* # (!) # file-roller windowrulev2 = center,class:^(file-roller)$ windowrulev2 = center,class:^(org.gnome.FileRoller)$ windowrulev2 = float,class:^(file-roller)$ windowrulev2 = float,class:^(org.gnome.FileRoller)$ windowrulev2 = size 900 600,class:^(org.gnome.FileRoller)$ # Nemo File Manager windowrulev2 = float,class:^(nemo)$,title:(Properties)$ # Steam windowrule = float,title:^(Create or select new Steam library folder)$ windowrule = float,title:^(Steam Settings)$ windowrule = workspace 10,title:^(Steam Big Picture Mode)$ windowrule = tile,title:^(Steam Big Picture Mode)$ # ProtonUp-Qt windowrulev2 = float,class:^(net.davidotek.pupgui2)$ # Calculator windowrulev2 = float,class:^(org.gnome.Calculator)$ windowrulev2 = size 420 640,class:^(org.gnome.Calculator)$ # Google-Chrome windowrulev2 = float,class:^(google-chrome)$,title:^(Open File)$ windowrulev2 = float,class:^(google-chrome)$,title:^(Open Files)$ # Spotify windowrulev2 = workspace special:alt silent,class:(Spotify)$ # Start games tiled to prevent vrr spike bug windowrulev2 = tile,class:^(steam_app_)(.*)$ windowrulev2 = tile,class:^(.*)(exe)$ # Don't turn off monitor when using VM windowrulev2 = idleinhibit focus,class:(looking-glass-client)$ ######## Misc Dialogs/Pop-up windows ######## windowrule = float,title:^(Choose Files)$ windowrule = float,title:^(Choose wallpaper)(.*)$ windowrule = float,title:^(Confirm to replace files)$ windowrule = float,title:^(File Operation Progress)$ windowrule = float,title:^(Library)(.*)$ windowrule = float,title:^(Open File)(.*)$ windowrule = float,title:^(Open Folder)(.*)$ windowrule = float,title:^(Select Folder)(.*)$ windowrule = float,title:^(Select)(.*)(folder)$ windowrule = float,title:^(Open)$ windowrule = float,title:^(Save As)(.*)$ windowrule = float,title:^(Select a File)(.*)$ ######## Workspace rules ######## workspace = 1, monitor:DP-1, default:true, persistent:true workspace = 2, monitor:DP-2, default:true, persistent:true ######## Layer rules ######## # Rofi (App launcher) layerrule = ignorealpha 0.0, rofi layerrule = blur, rofi layerrule = animation slide bottom, rofi # Waybar layerrule = ignorealpha 0.0, waybar layerrule = blur, waybar # SwayNotificationCenter layerrule = ignorealpha 0.0, swaync-control-center layerrule = ignorealpha 0.0, swaync-notification-window layerrule = blur, swaync-control-center layerrule = blur, swaync-notification-window layerrule = animation slide right, swaync-control-center # SwayOSD (Volume OSD) layerrule = ignorealpha 0.01, swayosd layerrule = blur, swayosd # hyprswitch (Win+Tab popup) layerrule = ignorealpha 0.0, hyprswitch layerrule = blur, hyprswitch # Colour picker/Screenshots layerrule = noanim, hyprpicker layerrule = noanim, selection # Overview layerrule = ignorealpha 0.0, overview layerrule = blur, overview layerrule = animation slide top, overview # Misc layerrule = ignorealpha 0.6, shell:* layerrule = ignorealpha 0.0 gtk-layer-shell layerrule = blur, shell:* layerrule = blur, gtk-layer-shell ######## Transparent Windows ######## windowrulev2 = opacity 0.85,floating:1 # Make all floating windows transparent # Force full opacity on fullscreen windows above this windowrulev2 = opacity 1.0 override, fullscreen:1 # Windows that want opacity while fullscreen below this windowrule = opacity 0.9, ^(sublime_text)$ windowrule = opacity 0.8, ^(nemo)$ windowrule = opacity 0.85, ^(vesktop)$ windowrulev2 = opacity 0.85,class:(Spotify)$ ######## PIP rules ######## windowrulev2 = opacity 1.0 0.75,title:^(Picture-in-Picture)$ windowrulev2 = float, title:^(Picture-in-Picture)$ windowrulev2 = move 72% 7%,title:^(Picture-in-Picture)$ windowrulev2 = pin,title:^(Picture-in-Picture)$ windowrulev2 = size 25% 25%,title:^(Picture-in-Picture)$ ======Config-End======== ```Description
I get odd artifacting on my display with direct scanout enabled. I'm not sure if this is a Hyprland issue or a mesa bug. I disabled my 470 in order to test the latency benefits of direct scanout as I've heard that it doesn't work with multiple GPUs. So this is running like so: 6700XT(Hyprland)->Monitor as opposed to my usual setup of 6700XT->470(Hyprland)->Monitor.
This seems to be more apparent the higher the framerate. I didn't find any issues similar to my one that weren't already closed or just not quite the same. I'm also not sure if this is a regression or not. The only other time I tried direct scanout was right after the major rewriting around 0.40 and I had the same issue then, so I assumed it was a bug that might have been known about and being fixed.
The first clip I've attatched below is the result with VSYNC enabled at 144fps, while the second clip with even more artifacting is with VSYNC disabled and an uncapped framerate (around 600-800fps).
How to reproduce
Crash reports, logs, images, videos
https://github.com/user-attachments/assets/05c9e4dc-7724-4682-adb7-e36c470a7f35
https://github.com/user-attachments/assets/0e67906c-394a-4bec-b5a3-384ce3e66d44