yshui / picom

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

Tons of "Failed to query info of pixmap" errors in the log #429

Open wedens opened 4 years ago

wedens commented 4 years ago

Picom has a lot (dozens per second) of errors in the log:

Jun 11 00:58:04 wedens-pc picom[32282]: [ 06/11/2020 00:58:04.744 glx_bind_pixmap ERROR ] Failed to query info of pixmap 0x00c01378.
Jun 11 00:58:04 wedens-pc picom[32282]: [ 06/11/2020 00:58:04.744 paint_one ERROR ] Failed to bind texture for window 0x01800002.
Jun 11 00:58:04 wedens-pc picom[32282]: [ 06/11/2020 00:58:04.744 paint_one ERROR ] Window 0x01800002 is missing painting data.

I'm not sure what kind of observable problems it might cause, but I don't see any.

Platform

NixOS 20.03

GPU, drivers, and screen setup

GPU Nvidia GTX 660 driver version: 440.82 Single monitor

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 2048 MB
    Total available memory: 2048 MB
    Currently available dedicated video memory: 1616 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 660/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 440.82
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6.0 NVIDIA 440.82
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)

OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 440.82
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

Environment

No DE. WM: Xmonad 0.15

picom version

picom --diagnostics output:

**Version:** v8

### Extensions:

* Shape: Yes
* XRandR: Yes
* Present: Present

### Misc:

* Use Overlay: No (Another compositor is already running)
* Config file used: None

### Drivers (inaccurate):

NVIDIA  

Configuration:

# fading
fading = true;
fade-delta    = 4;
fade-in-step  = 0.03;
fade-out-step = 0.03;
fade-exclude  = [];

# shadows
shadow = true;
shadow-offset-x = -5;
shadow-offset-y = -5;
shadow-opacity  = 0.75;
shadow-exclude  = ["name = 'Notification'","_GTK_FRAME_EXTENTS@:c"];

# opacity
active-opacity   = 1.0;
inactive-opacity = 1.0;
inactive-dim     = 0.0;
opacity-rule     = [];

wintypes:
{
  dock          = { shadow = false; };
  dnd           = { shadow = false; };
  popup_menu    = { opacity = 1.0; };
  dropdown_menu = { opacity = 1.0; };
};

# other options
backend = "glx";
vsync = false;
refresh-rate = 0;
# The blur radius for shadows, in pixels.
shadow-radius = 7;

# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
mark-wmwin-focused = true;

# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
detect-client-opacity = true;

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
use-ewmh-active-win = true;

# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows.
unredir-if-possible = true;

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
glx-no-stencil = true;

# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
xrender-sync-fence = true;
wedens commented 4 years ago

No errors with --experimental-backends with the same config, FWIW.

Vladimir-csp commented 3 years ago

Without --experimental-backens I get a ton of these errors when moving mouse fast along tint2 taskbars.

With --experimental-backens moving mouse fast over multiple window icons in tint2 taskbars crashes picom with:

picom: ../src/win.c:318: win_release_images: Assertion `!win_check_flags_all(w, WIN_FLAGS_SHADOW_STALE)' failed.

My hypothesis is that picom can't handle a situation when lots of tooltips are being created and destroyed at once, which is happening when moving mouse over multiple window icons on tint2 taskbars fast enough.

nick87720z commented 3 years ago

For me it happes when just switching between windows, but not always and without pattern to reproduce. I did it with simpleterm (st) and urxvt - just create 2 windows and switch between them many times, some will lead to errors at the top of issue start.

Another pattern, probably more reliable (this sime simpel create of 2 windows after start was not enough):

codekid-rgb commented 1 year ago

I have a simmilar issue, no effect, just there filling up journal. here it is: glx_bind_pixmap ERROR ] Failed to query info of pixmap 0x008003a2

codekid-rgb commented 1 year ago

on Nixos 22.11 + xmonad latest

sedimentation-fault commented 10 months ago

Same here when switching from one window to another. My X terminals are littered with:

glx_bind_pixmap ERROR ] Failed to query info of pixmap 0x0485768f.
paint_one ERROR ] Failed to bind texture for window 0x04ac19ba.
paint_one ERROR ] Window 0x04ac19ba is missing painting data.

This is picom 8.2 on Gentoo. GLX is from x11-drivers/nvidia-drivers-460.91.03 for my GeForce 980M.

I'll start experimenting with the various GLX settings in /etc/picom.conf and report here if anything helps.