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
pvkrun vulkaninfo segfaults in glXCreateContextAttribsARB () from /usr/lib64/libGLX_nvidia.so.0 #88
Comments
This part of the stack trace looks wrong:
When I run this, the calls are not routed through primus but go direct to
Could you please provide the output of
Tomorrow I will have a closer look on which symbol resolves where on my system and hopefully have more debug hints for you. |
Thanks a lot for the reply! Here is the output you requested:
|
I investigated a bit further why the /usr/lib64/primus/libGL.so.1 library is loaded. It seems like primusrun prefixes the LD_LIBRARY_PATH with /usr/lib64/primus, so it gets set when pvkrun uses primusrun. I tried to uncomment this LD_LIBRARY_PATH change in primusrun temporarily, but this results in the following output then:
Is this of any help? |
The primus
It seems, that you are skipping libGLX here. This bears the question: does primus work on your system? (e.g. |
I'll try to answer your questions: Primus works on my system: I have not configured any libraries for primus manually.
The files listed behind PRIMUS_libGLa don't exist on my system. However, if I do
or
, neither the behaviour of I have glvnd. In fact, my system-wide libGL.so.1 is provided by a package named media-libs/libglvnd, so I guess this is not from NVIDIA. |
Don't put the libGLXes in there. Use the libGL. And if glvnd is working on your system, you should use the system libGL.so.1. So please try:
Assuming that is your glvnd-provided libGL. |
Thanks for the hint. I have exported PRIMUS_libGLa and PRIMUS_libGLd as you described - this libGL.so.1 is the one that my glvnd provides. However, even though
, the behaviour of
You mentioned before ( #88 (comment) ), that you were able to pull up a stack trace which looks more like mine and also contains the /usr/lib64/primus/libGL.so.1. Did this run succeed on your device or also segfault like mine? I'm asking because I'm wondering if we should concentrate of getting the primus/libGL.so.1 out of the backtrace or if the problem might have other origins. |
The run succeeded. Just for reference: To get this stack trace, I forced loading of OpenGL (and therby primus) before loading vulkan by running Also what is strange:
But that should be a fatal error. When I set
You noted, that through exporting you have overridden the PRIMUS-configuration environment variables. Can you try |
I guess I found the issue. But lets go through your last comment step by step. I actually have no idea why optirun works when However, it turned out that your proposed
It seems to override any previously exported primus environment variables to those two which are not the correct ones for a GLVND-Setup as you pointed out.
fixes the issue. With this modification, I tried to track down the source of this issue and found that the original primusrun at https://github.com/amonakov/primus/blob/master/primusrun does not contain any active |
Yes, I'd agree that this should be reported as a bug in the ebuild and fixed there. I'll give a bit more context that might help convince others why For reference: this problem should not only be fixed in primusrun but also in optirun/bumblebee directly. (That way
The last segments of the search path, causes primus to find So summing it up: my suggested fix would be to remove all overriding from I hope this help sorting all this mess out :D. |
Thanks a lot for the guidance for debugging and all the in-depth information! Since this problem seems to be introduced by the gentoo ebuild for primus, I have filed a bug there https://bugs.gentoo.org/770193 and will close the issue here. |
Hi,
I have installed primus_vk from source on my Gentoo laptop with an integrated Intel GPU and a dedicated NVIDIA GTX 1050 GPU. I have applied some patches primus_vk_gentoo_patch.txt to primus_vk to
I have removed NVIDIAs icd file such that the remaining configuration looks like this:
Now when I run
pvkrun vulkaninfo
orpvkrun vkcube
, both end up with a segmentation fault without further explanation.When I run the whole thing in a debugger
pvkrun gdb --args vulkaninfo
and print a stack trace after the segfault, it looks like this:It seems like vk calls are nicely forwarded from libvulkan.so to libnv_vulkan_wrapper.so.1 to libGLX_nvidia.so.0 which segfaults somewhere in glXCreateContextAttribsARB().
Considering that I'm using Gentoo, I already checked some suggestions I found online:
Maybe I should also mention that I'm running gnome with wayland.
I'd really be glad about any hint on how to solve / debug this issue!
The text was updated successfully, but these errors were encountered: