yshui / picom

A lightweight compositor for X11 with animation support
https://picom.app/
Other
4.16k stars 589 forks source link

Visual artifacts when using blur and urxvt terminal #1088

Closed saygo-png closed 1 year ago

saygo-png commented 1 year ago

Platform

Debian 12, amd64

GPU, drivers, and screen setup

single monitor, Ryzen 5 3400G with integrated gpu, variable refresh rate, 144hz glxinfo -Boutput:

display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon Vega 11 Graphics (raven, LLVM 15.0.6, DRM 3.49, 6.1.0-9-amd64) (0x15d8)
    Version: 22.3.6
    Accelerated: yes
    Video memory: 2048MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 1284 MB, largest block: 1284 MB
    VBO free aux. memory - total: 2859 MB, largest block: 2859 MB
    Texture free memory - total: 1284 MB, largest block: 1284 MB
    Texture free aux. memory - total: 2859 MB, largest block: 2859 MB
    Renderbuffer free memory - total: 1284 MB, largest block: 1284 MB
    Renderbuffer free aux. memory - total: 2859 MB, largest block: 2859 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 2048 MB
    Total available memory: 5120 MB
    Currently available dedicated video memory: 1284 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon Vega 11 Graphics (raven, LLVM 15.0.6, DRM 3.49, 6.1.0-9-amd64)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 22.3.6
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 22.3.6
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.3.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

AwesomeWM

picom version

vgit-4e6dd

Diagnostics **Version:** vgit-4e6dd ### Extensions: * Shape: Yes * RandR: Yes * Present: Present ### Misc: * Use Overlay: No (Another compositor is already running) * Config file used: /home/samsepi0l/.config/picom.conf ### Drivers (inaccurate): AMDGPU, Radeon ### Backend: glx * Driver vendors: * GLX: Mesa Project and SGI * GL: AMD * GL renderer: AMD Radeon Vega 11 Graphics (raven, LLVM 15.0.6, DRM 3.49, 6.1.0-9-amd64) * Accelerated: 1 ### Backend: egl * Driver vendors: * EGL: Mesa Project * EGL driver: radeonsi * GL: AMD * GL renderer: AMD Radeon Vega 11 Graphics (raven, LLVM 15.0.6, DRM 3.49, 6.1.0-9-amd64)

Configuration:

Configuration file ``` # ░█▀█░▀█▀░█▀▀░█▀█░█▄█░░░░█▀▀░█▀█░█▀█░█▀▀ # ░█▀▀░░█░░█░░░█░█░█░█░░░░█░░░█░█░█░█░█▀▀ # ░▀░░░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀░░▀▀▀░▀▀▀░▀░▀░▀░░ # # X compositor configuration # ░█▀▀░█░█░█▀█░█▀▄░█▀█░█░█ # ░▀▀█░█▀█░█▀█░█░█░█░█░█▄█ # ░▀▀▀░▀░▀░▀░▀░▀▀░░▀▀▀░▀░▀ shadow = false; shadow-radius = 0; shadow-opacity = 0; shadow-offset-x = 0; shadow-offset-y = 0; shadow-red = 0 shadow-green = 0 shadow-blue = 0 #shadow-color = "#000000"; shadow-exclude = [ # "name = 'Notification'", "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "class_g = 'Cairo-clock'", "class_g = 'slop'", # "class_g = 'Firefox' && argb", # "class_g = 'Rofi'", "_GTK_FRAME_EXTENTS@:c", "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" ]; # shadow-exclude-reg = "x10+0+0"; # xinerama-shadow-crop = true; # ░█▀▀░█▀█░█▀▄░▀█▀░█▀█░█▀▀ # ░█▀▀░█▀█░█░█░░█░░█░█░█░█ # ░▀░░░▀░▀░▀▀░░▀▀▀░▀░▀░▀▀▀ fading = false; fade-in-step = 0.; fade-out-step = 0; fade-delta = 0; fade-exclude = []; no-fading-openclose = false; no-fading-destroyed-argb = true; # ░█▀█░█▀█░█▀█░█▀▀░▀█▀░▀█▀░█░█ # ░█░█░█▀▀░█▀█░█░░░░█░░░█░░░█░ # ░▀▀▀░▀░░░▀░▀░▀▀▀░▀▀▀░░▀░░░▀░ inactive-opacity = 0.6; frame-opacity = 1; inactive-opacity-override = false; active-opacity = 1.0; inactive-dim = 0.0; focus-exclude = [ "class_g ?= 'mpv'" ]; # inactive-dim-fixed = 1.0; #opacity-rule = [ # "70:class_g = 'URxvt'", # "80:class_g = 'UXTerm'", # "80:class_g = 'XTerm'" #] # ░█▀▄░█░░░█░█░█▀▄░█▀▄░▀█▀░█▀█░█▀▀ # ░█▀▄░█░░░█░█░█▀▄░█▀▄░░█░░█░█░█░█ # ░▀▀░░▀▀▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀▀ blur: { method = "dual_kawase"; strength = 9.0; deviation = 1.0; kernel = "11x11gaussian"; } blur-background = false; blur-background-frame = false; blur-background-fixed = false; # blur-kern = "3x3box"; # blur-background-exclude = [ # "class_g = 'slop'", # "class_g = 'argb'", # "name = 'rofi - Global Search'", # "_GTK_FRAME_EXTENTS@:c" # ]; # ░█▀▀░█▀▀░█▀█░█▀▀░█▀▄░█▀█░█░░░░░█▀▀░█▀▀░▀█▀░▀█▀░▀█▀░█▀█░█▀▀░█▀▀ # ░█░█░█▀▀░█░█░█▀▀░█▀▄░█▀█░█░░░░░▀▀█░█▀▀░░█░░░█░░░█░░█░█░█░█░▀▀█ # ░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀ daemon = false; backend = "glx"; vsync = false; dbus = false; mark-wmwin-focused = true; mark-ovredir-focused = true; detect-rounded-corners = false; detect-client-opacity = true; #refresh-rate = 144; # use-ewmh-active-win = true; # unredir-if-possible = false; # unredir-if-possible-delay = 0; unredir-if-possible-exclude = []; detect-transient = true; detect-client-leader = true; resize-damage = 1; invert-color-include = []; glx-no-stencil = true; # glx-no-rebind-pixmap = false; use-damage = true; # xrender-sync-fence = true; # glx-fshader-win = ""; # force-win-blend = false; # no-ewmh-fullscreen = false; # max-brightness = 1.0; transparent-clipping = false; log-level = "warn"; log-file = "/home/samsepi0l/.cache/picom-log.log"; show-all-xerrors = true; # write-pid-path = '/path/to/your/mom'; wintypes: { tooltip = { fade = false; shadow = false; focus = false; }; normal = { shadow = false; }; dock = { shadow = false; }; dnd = { shadow = false; }; popup_menu = { shadow = false; focus = false; opacity = 1; }; dropdown_menu = { shadow = false; focus = false; }; above = { shadow = false; }; splash = { shadow = false; }; utility = { focus = false; shadow = false; blur-background = false; }; notification = { shadow = false; }; desktop = { shadow = false; blur-background = false; }; menu = { focus = false; }; dialog = { shadow = false; }; }; ```

Steps of reproduction

  1. Enable blur (dual_kawase in my case)
  2. Enable 32 bit depth and make the background transparent in urxvt
  3. Launch urxvt without any other window open

    Expected behavior

    smooth blur on urxvt, with a single window open this does not happen with kitty terminal or st

    Current Behavior

    {This only happens with urxvt when it's the only program open on a screen, even bringing another urxvt window fixes it} blur divided into blocky lines, blurs the text on the terminal itself looks especially bad when selecting something (I'm doing that in the screenshot) alt text

OpenGL trace

picom.txt

Other details

https://github.com/yshui/picom/assets/131687037/16a56cc1-2c1e-4516-9c7f-33625b3fd433

saygo-png commented 1 year ago

not sure why github says that the video is corrupt, mpv opens it fine.

Monsterovich commented 1 year ago

I can't reproduce with your config file.

2023-06-30_21-38-52.mkv.zip

I added these two lines to .Xresources to achieve transparency.

urxvt*depth: 32
urxvt*background: rgba:0000/0000/0200/c800
saygo-png commented 1 year ago

screen png_75 happens with this exact background :( this is my xresources file:

!! Set the background, foreground and cursor colors as below:

! -----------------------------------------------------------------------------
! File: gruvbox-dark.xresources
! Description: Retro groove colorscheme generalized
! Author: morhetz <morhetz@gmail.com>
! Source: https://github.com/morhetz/gruvbox-generalized
! Last Modified: 6 Sep 2014
! -----------------------------------------------------------------------------

! hard contrast: *background: #1d2021
*background: #282828
! soft contrast: *background: #32302f
*foreground: #ebdbb2
! Black + DarkGrey
*color0:  #282828
*color8:  #928374
! DarkRed + Red
*color1:  #cc241d
*color9:  #fb4934
! DarkGreen + Green
*color2:  #98971a
*color10: #b8bb26
! DarkYellow + Yellow
*color3:  #d79921
*color11: #fabd2f
! DarkBlue + Blue
*color4:  #458588
*color12: #83a598
! DarkMagenta + Magenta
*color5:  #b16286
*color13: #d3869b
! DarkCyan + Cyan
*color6:  #689d6a
*color14: #8ec07c
! LightGrey + White
*color7:  #a89984
*color15: #ebdbb2

!! URxvt Appearance
URxvt*font: -b&h-lucidatypewriter-medium-r-normal-sans-14-100-100-100-m-80-iso8859-1
URxvt*boldFont: -b&h-lucidatypewriter-bold-r-normal-sans-14-100-100-100-m-80-iso8859-1
!!URxvt*italicFont: -*-rissole-*
!!URxvt*boldItalicfont: -*-rissole-*
!!URxvt*letterSpace: 0
!!URxvt*lineSpace: 0
!!URxvt*geometry: 92x24
URxvt*internalBorder: 24
URxvt*cursorBlink: true
URxvt*cursorUnderline: false
URxvt*saveline: 500
URxvt*scrollBar: false
URxvt*scrollBar_right: false
URxvt*depth: 32
URxvt*background: rgba:0000/0000/0200/c800
absolutelynothelix commented 1 year ago

can reproduce.

saygo-png commented 1 year ago

bless you, works great now