compton
compton copied to clipboard
Issues with the latest nvidia-drivers
I'm using a GTX 650 Ti and recently updated to driver version 361.18. Since then, compton would not start with the following error message:
[xcb] Unknown request in queue while dequeuing
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
compton: ../../src/xcb_io.c:179: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed.
Aborted (core dumped)
Downgrading back to version 352.63 did resolve the issue.
My configuration is:
backend = "glx";
paint-on-overlay = true;
vsync = "opengl-mswc";
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
What I figured so far: Running compton from the commandline without any option, it will always cause this exception. Running compton with either -b or -S will sometimes run for a short time before also failing with the exception. When I remove the last two lines of the configuration, compton will run fine until some specific events occur. (I don't know what kind of events, but I could reproduce this with closing a Mixxx window) Running compton with --config /dev/null works fine. (But does not enable VSync, the reason I use compton)
Sorry to be unhelpful, but you might not get a lot of interest in troubleshooting a beta, closed driver. Wish I had better advice; I'll probably wind up troubleshooting the issue if it still exists when that series is promoted to the short-lived branch.
I have the same issue and had to downgrade for now.
I'm guessing this is caused by the fact that nvidia is switching(?) to GLVND https://devtalk.nvidia.com/default/topic/915640/unix-graphics-announcements-and-news/multiple-glx-client-libraries-in-the-nvidia-linux-driver-installer-package/
Sadly I can't say I properly understand what is going on here, but to my possibly bad understanding compton would need code to use glvnd?
I wonder if setting the environmental variable would work for compton. I might test this when I get home. __GLVND_DISALLOW_PATCHING=1
Thank you for the corroborating report.
It's not immediately obvious to me why GLVND would cause this problem, but there's one clear way to find out if it might be related: the article that you linked describes both a GLVND and a non-GLVND installation option. If someone would be so kind as to reinstall the new driver with the non-GLVND option and report back, we could figure out whether it's that shift or something else about the update that is causing this issue.
Separately, a full stack trace and/or a core dump would be very helpful.
Sounds like a good idea. I'll do that in a few hours if no one else does.
However, I realized that I've experienced two different error messages. With nvidia 361.18 I get the same error as @arbu With nvidia 361.28 I get the following error:
Failed get GL extension list.
Does that seem more likely to be related to GLVND?
Dota2, for instance, seems to have this error with GLVND: "Missing basic OpenGL 1.0". To me it sounds like close to the same thing, but I might be wrong :)
EDIT:
Separately, a full stack trace and/or a core dump would be very helpful.
If you would be so kind and provide me instructions as to how obtain this I'd gladly help out.
@kelleyk: I've now tested with the non-glvnd install and I have no issues.
Update: Seems like NVIDIA has confirmed issues with the GLVND enabled drivers that will be fixed in a future driver update.
@arbu: Could you also test with a non-glvnd install of the .28 drivers? I have a PKGBUILD file for Arch if that would help you install it.
I updated to 361.28 and now it works fine.
The Ubuntu package I build contains both, the GLVND- and the non-GLVND-version, and linking libGL.so.1 to libGL.so.1.0.0 (previously libGL.so.361.28) results in the following:
glx_hasglext(): Failed get GL extension list.
glx_bind_pixmap(): Failed to allocate texture.
glx_render(): Missing texture.
@arbu So what's the fix then for glvnd then? 361.28 yield a black screen here with it.
I'll use __GLVND_DISALLOW_PATCHING=1 compton .... for now as it works, afaics
I have the very same issue, also on nvidia 361.28. I've set __GLVND_DISALLOW_PATCHING=1 as system wide define (since more apps won't start without that line). Compton gives me a "Failed get GL extension list" and some more errors before segfaulting without that line. With it, it gives me:
[xcb] Unknown request in queue while dequeuing [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called [xcb] Aborting, sorry about that. compton: xcb_io.c:179: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed. [1] 1828 abort (core dumped) compton
@markg85 __GLVND_DISALLOW_PATCHING=1 did not work for me either, but __GL_THREADED_OPTIMIZATIONS=0 did. Could you try if that works for you?
@arbu Thank you very much, setting __GL_THREADED_OPTIMIZATIONS to 0 works indeed. However, i had set it to 1 for some other bug some time ago (not compton related, but video if i remember correctly) so i wonder if that now works as it should be..
Otherwise it's going to be: __GL_THREADED_OPTIMIZATIONS=0 compton