-
Notifications
You must be signed in to change notification settings - Fork 92
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
Possible incompatibility between libOpenGL.so and Xorg causing Xorg to crash on boot #210
Comments
Is libepoxy calling |
libepoxy is only a library loader/dlsym dispatcher. Xorg is making EGL context here https://cgit.freedesktop.org/xorg/xserver/tree/glamor/glamor_egl.c?h=xorg-server-1.20.11#n1012, but fails here https://cgit.freedesktop.org/xorg/xserver/tree/glamor/glamor_egl.c?h=xorg-server-1.20.11#n1019 |
Also, I'm a little bit surprised, that libGL.so is working (this is the only change in libepoxy, which breaks glGetString(GL_VENDOR) - libOpenGL.so is used instead of libGL.so) |
Are libGL.so and libEGL.so also from the same build of libglvnd? |
Also, try setting this environment variable before running X:
That'll tell libglvnd to print an error message and abort if a GL function is called without a current context. Normally, it'll just silently ignore such calls. |
This is the output of pkgfile for both of them:
So I assume that, yes, both of them are provided by the libglvnd package from the manjaro repo. |
This is the Xorg log when I started it from TTY using this command:
|
That looks like it doesn't have a current context, but I need the output on stderr to confirm, since that's where libglvnd will print the error message. |
I'm not sure if that is what you meant but I used this command:
and this is the result: |
Yeah, that's it. And that confirms that glGetString is being called without a current context. If all of the libraries are from libglvnd (and weren't overwritten by a driver or something), then that eglMakeCurrent call isn't setting a current context for some reason. I don't see a way that would happen just from reading the code, though. Your best bet might be to step through it in a debugger and see where it goes. |
@kbrenneman I posted my thought, why it could be, in original bug: Do you think, that this could be a cause? |
Nothing in libOpenGL.so can lose the current context. The current context for a thread changes only when you call eglMakeCurrent, glXMakeCurrent, or glXMakeContextCurrent. It also doesn't matter which library an OpenGL function comes from. You can get |
The offending commit (in libepoxy repo) has been reverted, so I assume this will be fixed after I get an update from the manjaro repo. |
Hello,
Basic info:
The issue first appeared when I updated my system and after rebooting I noticed that Xorg has crashed. After some diagnostic I found that the libepoxy update was to blame for this. After discussing this issue with libepoxy maintainers (anholt/libepoxy#252) we ended up on suspecting that libglvnd could be the issue.
Here is the Xorg log of one of the crashes:
Xorg.0.log
This is the suspicious line from this log file:
Also, here is the link to Manjaro forum discussing the issue: https://forum.manjaro.org/t/upgrading-libepoxy-from-1-5-5-to-1-5-7-results-in-xorg-crashing-on-boot/66195
The text was updated successfully, but these errors were encountered: