picom icon indicating copy to clipboard operation
picom copied to clipboard

Firefox from v. 117 become laggy scroll

Open dymn opened this issue 1 year ago • 1 comments

Platform

Gentoo amd64

GPU, drivers, and screen setup

AMD RX 6700 XT, mesa-23.2.0, xf86-video-amdgpu-23.0.0, xf86-video-ati-22.0.0, one LG 24GN600 144 MHz monitor

$  glxinfo -B                                                                                                                                                                 13:19
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon RX 6700 XT (navi22, LLVM 16.0.6, DRM 3.52, 6.4.12-gentoo) (0x73df)
    Version: 23.2.0
    Accelerated: yes
    Video memory: 12288MB
    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: 11881 MB, largest block: 11881 MB
    VBO free aux. memory - total: 15953 MB, largest block: 15953 MB
    Texture free memory - total: 11881 MB, largest block: 11881 MB
    Texture free aux. memory - total: 15953 MB, largest block: 15953 MB
    Renderbuffer free memory - total: 11881 MB, largest block: 11881 MB
    Renderbuffer free aux. memory - total: 15953 MB, largest block: 15953 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 12288 MB
    Total available memory: 28303 MB
    Currently available dedicated video memory: 11881 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 6700 XT (navi22, LLVM 16.0.6, DRM 3.52, 6.4.12-gentoo)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.2.0-rc2
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 23.2.0-rc2
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 23.2.0-rc2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

openbox-3.6.1

picom version

$  picom --version                                                                                                                                                            
vgit-8cc50

and the same problem with picom-10.2.

Diagnostics **Version:** vgit-8cc50

Extensions:

  • Shape: Yes
  • RandR: Yes
  • Present: Present

Misc:

  • Use Overlay: No (Another compositor is already running)
  • Config file used: /home/user/.config/picom.conf

Drivers (inaccurate):

AMDGPU, Radeon

Backend: glx

  • Driver vendors:
  • GLX: Mesa Project and SGI
  • GL: AMD
  • GL renderer: AMD Radeon RX 6700 XT (navi22, LLVM 16.0.6, DRM 3.52, 6.4.12-gentoo)
  • Accelerated: 1

Backend: egl

  • Driver vendors:
  • EGL: Mesa Project
  • EGL driver: radeonsi
  • GL: AMD
  • GL renderer: AMD Radeon RX 6700 XT (navi22, LLVM 16.0.6, DRM 3.52, 6.4.12-gentoo)

Configuration:

Configuration file
# Shadow
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = true;
#shadow-radius = 7;
#shadow-offset-x = -7;
#shadow-offset-y = -7;
shadow-radius = 15;
shadow-offset-x = -15;
shadow-offset-y = -15;
# shadow-opacity = 0.7;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-exclude = [
        "name = 'Notification'",
        "n:w:*VirtualBox*",
        "i:e:Conky",
        "class_g = 'Cairo-clock'",
        "class_g ?= 'Notify-osd'",
        "class_g ?= 'VirtualBox'",
        "class_g ?= 'Xfce4-notifyd'",
        "class_g ?= 'Xfce4-power-manager'",
        "class_g ?= 'Xfce4-panel'",
        "class_g ?= 'Xfce4-screenshooter'",
        "class_g = 'firefox' && argb",
        "class_g = 'firefox-esr' && argb",
        "class_g = 'Navigator' && window_type = 'utility'",
        "name *= 'Telegram' && argb"
];
# shadow-exclude = "n:e:Notification";
# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;

# Opacity
inactive-opacity = 1.0;
# active-opacity = 0.8;
frame-opacity = 1.0;
inactive-opacity-override = false;
alpha-step = 0.06;
# inactive-dim = 0.2;
# inactive-dim-fixed = true;
# blur-background = true;
# blur-background-frame = true;
blur-method = "dual_kawase";
# blur-strength = 15;
blur-kern = "3x3box";
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
# blur-background-fixed = true;
blur-background-exclude = [
	"window_type = 'dock'",
	"window_type = 'desktop'",
	"_GTK_FRAME_EXTENTS@:c",
        #"class_g ?= 'dunst'",
	"(class_g = 'firefox' || class_g = 'firefox-esr' || class_g = 'Thunderbird') && (window_type = 'utility' || window_type = 'popup_menu') && argb"
];
# opacity-rule = [ "80:class_g = 'URxvt'" ];

# Fading
fading = false;
# fade-delta = 30;
fade-in-step = 0.03;
fade-out-step = 0.03;
# no-fading-openclose = true;
# no-fading-destroyed-argb = true;
fade-exclude = [ ];

# Other
#backend = "xrender";
backend = "glx";
#backend = "egl";
#backend = "legacy-backends";

mark-wmwin-focused = true;
mark-ovredir-focused = true;

detect-rounded-corners = true;
detect-client-opacity = true;

vsync = true;
#refresh-rate = 0;

#dbe = false;
paint-on-overlay = true;
#sw-opti = true;
unredir-if-possible = true;
# unredir-if-possible-delay = 5000;
# unredir-if-possible-exclude = [ ];
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-transient = true;
detect-client-leader = true;
#invert-color-include = [ ];
resize-damage = 1;

# GLX backend
#glx-no-stencil = true;
glx-copy-from-front = false;
glx-use-copysubbuffermesa = true;
glx-no-rebind-pixmap = true;
use-damage = true;
xrender-sync = true;
#xrender-sync-fence = true; #
#no-ewmh-fullscreen = true; #
use-ewmh-active-win = true; #

# Do not fade destroyed ARGB windows with WM frame. Workaround bugs in Openbox, Fluxbox, etc.
no-fading-destroyed-argb = true;

# Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; };
#  dock = { shadow = false; clip-shadow-above = true; }
#  dnd = { shadow = false; }
#  popup_menu = { shadow = false; }
#  dropdown_menu = { shadow = false; }
};

Steps of reproduction

  1. Run Firefox-117.
  2. Open a page with lots of images and text, for example https://dymontiger.livejournal.com/19195316.html or https://mobile-review.com/all/articles/newphones/5-glavnyh-smartfonov-avgusta/
  3. Scroll down and up several times. Scrolling becomes laggy. The bad thing is that the bug can't be reproduced the first time. You need to scroll several times. And one more thing: scrolling does not need to be fast.

Expected behavior

  1. Run Firefox-115.2 (or 116).
  2. Open a page with lots of images and text, for example https://dymontiger.livejournal.com/19195316.html or https://mobile-review.com/all/articles/newphones/5-glavnyh-smartfonov-avgusta/
  3. Scroll down and up several times. Scroll is smoothly.

Current Behavior

Scrolling becomes laggy

Stack trace

None

OpenGL trace

If necessary, I will do it.

Other details

With xfce-4.18 there is no problem. With backend= "xrender" - no lags. With backend = "egl" - same problem.

dymn avatar Sep 04 '23 10:09 dymn

Correction: with backend= "xrender" - there are also lags.

Later I have been testing and searching for the problem for several hours using mozregression. Found a bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1836668 In the patch https://hg.mozilla.org/mozilla-central/rev/e1c387461f14 I saw a new variable: gfx.x11.glx_sgi_video_sync I changed it in about:config in Firefox to true - and everything started working as before.

Please tell me - is this a problem in Firefox or in Picom? But if in Firefox, then why is there no problem in xfce-4.18? Maybe there is some option in the picom settings that would correspond to this innovation in Firefox?

dymn avatar Sep 04 '23 14:09 dymn