-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
No GLXFBConfigs returned #194
Comments
Note that this occurs on two of my Gentoo laptops (both have Intel GPUs), however I can pin GLFW to v3.1.0 (before the JLLs) and the issue goes away. |
I should also mention that I'm running on Wayland, however XWayland is also running and available (and Xorg-using programs work fine otherwise). |
I run into a the same error message with GLFW v3.2.2 on Julia v1.3.0 (not using Wayland). (v1.3) pkg> add GLFW
(v1.3) pkg> build GLFW
julia> using GLFW
julia> window = GLFW.CreateWindow(640, 480, "GLFW.jl")
ERROR: GLFWError (API_UNAVAILABLE): GLX: No GLXFBConfigs returned
Stacktrace:
[1] _ErrorCallbackWrapper(::Int32, ::Cstring) at /home/paul/.julia/packages/GLFW/g1nX6/src/callback.jl:43
[2] CreateWindow(::Int64, ::Int64, ::String, ::GLFW.Monitor, ::GLFW.Window) at /home/paul/.julia/packages/GLFW/g1nX6/src/glfw3.jl:487 (repeats 3 times)
[3] top-level scope at REPL[4]:1 Output of glxinfo:
OS: Linux Mint 4.15.0-76-generic #86~16.04.1-Ubuntu |
So I briefly investigated this with
(the above lines repeat for maybe 50 iterations, and appear to be identical). The above-referenced libraries do not exist in the artifact, as expected. I suspect that a library somewhere (maybe one being pulled in from the system) is trying to load libraries according to a system-specific list. |
Looks like upgrading my system's Mesa from 18.x to 19.3.5 fixed this issue for me, probably because it now ships |
OK, thanks! I will try to upgrade Mesa. Also, I created a gist of running strace on |
The gist you linked doesn't seem to contain the calls I was expecting to see. Can you do an |
Sure, I updated the gist |
I'm running into this problem on Guix, with julia 1.5.2: (@v1.5) pkg> activate .
Activating environment at `~/Code/Research/tmp/Project.toml`
(tmp) pkg> build GLFW
julia> using GLFW
julia> window = GLFW.CreateWindow(640, 480, "GLFW.jl")
ERROR: GLFWError (API_UNAVAILABLE): GLX: No GLXFBConfigs returned
Stacktrace:
[1] _ErrorCallbackWrapper(::Int32, ::Cstring) at /home/sl/.julia/packages/GLFW/CBo9c/src/callback.jl:43
[2] CreateWindow(::Int64, ::Int64, ::String, ::GLFW.Monitor, ::GLFW.Window) at /home/sl/.julia/packages/GLFW/CBo9c/src/glfw3.jl:499 (repeats 3 times)
[3] top-level scope at REPL[4]:1 Here is Project.toml, Manifest.toml, strace.log. Also: $ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4400 (HSW GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 20.0.8
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 20.0.8
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 20.0.8
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions: and: julia> versioninfo()
Julia Version 1.5.2
Commit 539f3ce943* (2020-09-23 23:17 UTC)
Platform Info:
OS: Linux (x86_64-unknown-linux-gnu)
CPU: Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-9.0.1 (ORCJIT, haswell)
Environment:
JULIA_LOAD_PATH = :
JULIA_DEPOT_PATH = :/home/sl/.guix-profile/share/julia/:/home/sl/.guix-profile/share/julia/:/home/sl/.guix-profile/share/julia/:/home/sl/.guix-profile/share/julia/:/home/sl/.guix-profile/share/julia/:/home/sl/.guix-profile/share/julia/:/home/sl/.guix-profile/share/julia/:/home/sl/.guix-profile/share/julia/ Any idea where this comes from? |
After some thinking, I think I understand the issue:
The reason this works for some people is likely due to Libglvnd finding a system-provided libGLX implementation in @giordano unless it's possible to make GLFW use a different approach (EGL, etc.), then I think we'll need to build Mesa for Linux and enable glvnd support. What do you think? |
I think I know zero about all this stuff 🙂 Is JuliaPackaging/Yggdrasil#3192 somewhat relevant? Read all the discussion there |
Having the same error in Guix. Downgrading to 3.1.0 is not an option since it fails to build for because of some cmake error.
I have a qualitatively different strace output however. There is no mention of I have other problems with some julia packages in Guix I guess problem comes from the way they operate together. I know that in guix some linking functions differently but I have no understanding of this. Anyway I guess julia is somehow not finding things it need to work properly. So I'll ask in the guix community if there are some required configs I missed. @wehlutyk did you make any progress on this ? |
Unfortunately no, and I haven't tried again over the last year. @theottm thanks for reviving this though! |
I'm hitting the same problem when trying to use/install GLMakie inside an apptainer environment. I didn't follow all the discussion, e.g. on Yggdrasil, but has there been progress on this? I tested
and
running inside apptainer (e.g.
|
Somehow, I also have this issue the nix package |
try launching julia with > LD_LIBRARY_PATH=/run/opengl-driver/lib/ julia |
This solved the problem for me on NixOS. |
Any progress on this? I'm get the same error with GLFW.jl v3.4.1 using Julia 1.9.2 on RHEL 9.
and
UPDATE: Success! Or at least a hacky workaround that someone else might find useful. Launching Julia with
allows GLFW.jl to work, but a subsequent installation of GLMakie (my ultimate goal) does not, presumably due to a conflict in one or more of the numerous lib files it finds in /usr/lib64. Through trial & error, I determined that /usr/lib64/libGLX.so.0 is all that GLFW.jl needs to dynamic load, so I made a directory with a link to just that one file and launch Julia with
|
This also works for me on NixOS, but doesn't work if I set this variable inside julia with ENV["LD_LIBRARY_PATH"] = "/run/opengl-driver/lib/" even if I do that before |
@Antoinemarteau In NixOS you can make an overlay with |
Thanks for the idea. Using this looks a bit too involved for my usage, I just made an alias... shellAliases.ju = "LD_LIBRARY_PATH=/run/opengl-driver/lib/ julia"; |
The switch to the new JLL packages seems to cause problems for me and GLFW.jl. When running tests on GLFW master:
Julia versioninfo:
OS is Gentoo Linux x64
Output of
glxinfo
: https://paste.sr.ht/%7Ejpsamaroo/bc3362d8f2de7fd764b3a058667e672b2463df38The text was updated successfully, but these errors were encountered: