compton icon indicating copy to clipboard operation
compton copied to clipboard

Issues with the latest nvidia-drivers

Open arbu opened this issue 9 years ago • 11 comments

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)

arbu avatar Feb 08 '16 01:02 arbu

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.

kelleyk avatar Feb 09 '16 12:02 kelleyk

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

fosspill avatar Feb 11 '16 11:02 fosspill

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.

kelleyk avatar Feb 11 '16 13:02 kelleyk

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.

fosspill avatar Feb 11 '16 13:02 fosspill

@kelleyk: I've now tested with the non-glvnd install and I have no issues.

fosspill avatar Feb 11 '16 17:02 fosspill

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.

fosspill avatar Feb 11 '16 18:02 fosspill

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 avatar Feb 12 '16 02:02 arbu

@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

licaon-kter avatar Feb 12 '16 23:02 licaon-kter

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 avatar Feb 14 '16 16:02 markg85

@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 avatar Feb 14 '16 16:02 arbu

@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

markg85 avatar Feb 14 '16 16:02 markg85