-
Notifications
You must be signed in to change notification settings - Fork 32
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
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: