Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Picom crashes on Intel GPU when I change the config file #1045

Closed
Monsterovich opened this issue Apr 9, 2023 · 12 comments
Closed

Picom crashes on Intel GPU when I change the config file #1045

Monsterovich opened this issue Apr 9, 2023 · 12 comments

Comments

@Monsterovich
Copy link
Contributor

Works fine on NVidia driver.
picom --version

vgit-59881

The crash log:

picom
[ 10.04.2023 00:03:40.400 x_log_error WARN ] X error 4 PIXMAP request 152 minor 22 serial 1713
X Error of failed request:  GLXBadPixmap
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  23 (X_GLXDestroyPixmap)
  Serial number of failed request:  3947
  Current serial number in output stream:  4224

glxinfo -B

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel (0x8086)
    Device: Mesa Intel(R) HD Graphics 520 (SKL GT2) (0x1916)
    Version: 23.0.2
    Accelerated: yes
    Video memory: 7825MB
    Unified memory: yes
    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
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 520 (SKL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.0.2 - kisak-mesa PPA
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.0.2 - kisak-mesa PPA
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.0.2 - kisak-mesa PPA
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

However, it doesn't crash with an empty configuration file.

touch config.cfg
picom --config /home/monsterovich/config.cfg

then I edited this file and saved it. No crash.

Here is my configuration on this machine:

https://pastebin.com/4YCeK1xZ

@absolutelynothelix
Copy link
Collaborator

does applying #984 fix the issue?

@Monsterovich
Copy link
Contributor Author

does applying #984 fix the issue?

No, it doesn't.

┌(monsterovich@dell)─(pts/1)─(~/Distfiles/compile/picom/build fix-binding-root-back-pixmap)
└─(>) ./src/picom
[ 10.04.2023 01:31:52.920 x_log_error WARN ] X error 4 PIXMAP request 152 minor 22 serial 1620
X Error of failed request:  GLXBadPixmap
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  23 (X_GLXDestroyPixmap)
  Serial number of failed request:  6869
  Current serial number in output stream:  7158

@absolutelynothelix
Copy link
Collaborator

absolutelynothelix commented Apr 9, 2023

can you track down the issue to a particular option/combination of options? you can, for example, comment a half of your configuration file, then a half of a half and so on.

ah, wait, when the configuration file is empty the default backend is xrender. does it happen if you start picom as picom --config=/dev/null --backend=glx? also, try the egl backend as well.

@Monsterovich
Copy link
Contributor Author

can you track down the issue to a particular option/combination of options? you can, for example, comment a half of your configuration file, then a half of a half and so on.

ah, wait, when the configuration file is empty the default backend is xrender. does it happen if you start picom as picom --config=/dev/null --backend=glx? also, try the egl backend as well.

Yeah, it crashes when backend is set to "glx".

@Monsterovich
Copy link
Contributor Author

@absolutelynothelix It doesn't crash with egl backend.

[ 10.04.2023 01:42:25.433 get_cfg WARN ] The egl backend is still experimental, use with care.
[ 10.04.2023 01:42:25.643 egl_bind_pixmap ERROR ] Failed to create eglpixmap for pixmap 0x00000764
[ 10.04.2023 01:42:25.643 root_damaged ERROR ] Failed to bind root back pixmap
[ 10.04.2023 01:42:35.466 get_cfg WARN ] The egl backend is still experimental, use with care.
[ 10.04.2023 01:42:35.624 egl_bind_pixmap ERROR ] Failed to create eglpixmap for pixmap 0x00000764
[ 10.04.2023 01:42:35.624 root_damaged ERROR ] Failed to bind root back pixmap
[ 10.04.2023 01:42:40.598 get_cfg WARN ] The egl backend is still experimental, use with care.
[ 10.04.2023 01:42:40.734 egl_bind_pixmap ERROR ] Failed to create eglpixmap for pixmap 0x00000764
[ 10.04.2023 01:42:40.734 root_damaged ERROR ] Failed to bind root back pixmap

Although there are errors in the console. The egl backend doesn't work at all on NVidia, so I forgot about it.

@absolutelynothelix
Copy link
Collaborator

absolutelynothelix commented Apr 10, 2023

The egl backend doesn't work at all on NVidia, so I forgot about it.

it was fixed recently, i use the egl backend myself on an nvidia gpu.

talking about the issue, it seems that on backend deinitialization some invalid pixmap is destroyed. in theory, we can just check if this pixmap is valid before destroying it but it’s better to figure out why we have an invalid pixmap at all.

@absolutelynothelix
Copy link
Collaborator

absolutelynothelix commented Apr 13, 2023

does this happen with the legacy glx backend?

[ 10.04.2023 01:42:25.433 get_cfg WARN ] The egl backend is still experimental, use with care.
[ 10.04.2023 01:42:25.643 egl_bind_pixmap ERROR ] Failed to create eglpixmap for pixmap 0x00000764
[ 10.04.2023 01:42:25.643 root_damaged ERROR ] Failed to bind root back pixmap
[ 10.04.2023 01:42:35.466 get_cfg WARN ] The egl backend is still experimental, use with care.
[ 10.04.2023 01:42:35.624 egl_bind_pixmap ERROR ] Failed to create eglpixmap for pixmap 0x00000764
[ 10.04.2023 01:42:35.624 root_damaged ERROR ] Failed to bind root back pixmap

hm, this gives me some clues. what wm/de you're using and how do you set the wallpaper?

@Monsterovich
Copy link
Contributor Author

does this happen with the legacy glx backend?

Yes.

picom --legacy-backends
[ 14.04.2023 00:32:24.009 x_log_error WARN ] X error 4 PIXMAP request 152 minor 22 serial 3010
X Error of failed request:  GLXBadPixmap
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  23 (X_GLXDestroyPixmap)
  Serial number of failed request:  5891
  Current serial number in output stream:  5903

hm, this gives me some clues. what wm/de you're using and how do you set the wallpaper?

Xfwm4 (4.16.1). The wallpaper is set through the xfce4-settings-manager.

@absolutelynothelix
Copy link
Collaborator

absolutelynothelix commented Apr 14, 2023

does this happen if you:

  1. kill picom (killall picom);
  2. kill xfdesktop (killall xfdesktop);
  3. launch picom as usual;
  4. change the configuration file as usual?

@Monsterovich
Copy link
Contributor Author

does this happen if you:

1. kill picom (`killall picom`);

2. kill xfdesktop (`killall xfdesktop`);

3. launch picom as usual;

4. change the configuration file as usual?

Then everything works, doesn't even write any warnings in the console.

@absolutelynothelix
Copy link
Collaborator

absolutelynothelix commented Apr 15, 2023

then it seems that #984 isn’t perfect as it supposed to fix this issue 😪

@Monsterovich
Copy link
Contributor Author

I'll probably close this ticket. I built xfdesktop 4.18.1 from source and this problem was fixed. Most likely pixmap was broken in xfdesktop for some reason (a pointer to it exists but it's broken).

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants