JuliaPlots / GLMakie.jl

OpenGL backend for Makie
Other
46 stars 25 forks source link

Build fails to load OpenGL drivers #93

Closed grahamas closed 4 years ago

grahamas commented 4 years ago

Can anyone suggest how I would debug this? As far as I can tell, my OpenGL install works elsewhere (e.g. Steam). This is GLMakie v0.1.0 and Julia v1.4.0.

(@v1.4) pkg> build GLMakie
   Building ModernGL _ `~/.julia/packages/ModernGL/rVuW2/deps/build.log`
   Building GLMakie __ `~/.julia/packages/GLMakie/2xw8L/deps/build.log`
_ Error: Error building `GLMakie`:
_ libGL error: MESA-LOADER: failed to open iris (search paths /usr/lib/dri)
_ libGL error: failed to load driver: iris
_ libGL error: MESA-LOADER: failed to open iris (search paths /usr/lib/dri)
_ libGL error: failed to load driver: iris
_ libGL error: MESA-LOADER: failed to open swrast (search paths /usr/lib/dri)
_ libGL error: failed to load driver: swrast
_ init error of GLFW
_ ERROR: LoadError: OpenGL/GLFW wasn't installed correctly. This likely means,
_ you don't have an OpenGL capable Graphic Card,
_ you don't have the newest video driver installed,
_ or the GLFW build failed. If you're on linux and `]build` GLFW failed,
_ try manually adding `sudo apt-get install libglfw3` and then `]build GLMakie`.
_ If you're on a headless server, you still need to install x-server and
_ proper GPU drivers. You can take inspiration from this article
_ on how to get Makie running on a headless system:
_ https://nextjournal.com/sdanisch/makie-1.0
_ If you don't have a GPU, there is also a Cairo software backend
_ for Makie which you can use:
_ https://github.com/JuliaPlots/CairoMakie.jl.
_ Please check the below error and open an issue at:
_ https://github.com/JuliaPlots/GLMakie.jl.
_ After you fixed your OpenGL install, please run `]build GLMakie` again!
_ GLMakie will still load, but will be disabled as a default backend for Makie
_
_ Stacktrace:
_  [1] error(::String) at ./error.jl:33
_  [2] top-level scope at /home/graham/.julia/packages/GLMakie/2xw8L/deps/build.jl:63
_  [3] include(::String) at ./client.jl:439
_  [4] top-level scope at none:5
_ in expression starting at /home/graham/.julia/packages/GLMakie/2xw8L/deps/build.jl:31
_ caused by [exception 1]
_ GLFWError (VERSION_UNAVAILABLE): GLX: Failed to create context: GLXBadFBConfig
_ Stacktrace:
_  [1] _ErrorCallbackWrapper(::Int32, ::Cstring) at /home/graham/.julia/packages/GLFW/g1nX6/src/callback.jl:43
_  [2] CreateWindow(::Int64, ::Int64, ::String, ::GLFW.Monitor, ::GLFW.Window) at /home/graham/.julia/packages/GLFW/g1nX6/src/glfw3.jl:487
_  [3] GLFW.Window(; name::String, resolution::Tuple{Int64,Int64}, debugging::Bool, major::Int64, minor::Int64, windowhints::Array{Tuple{UInt32,Int64},1}, contexthints::Array{Tuple{UInt32,Integer},1}, visible::Bool, focus::Bool, fullscreen::Bool, monitor::Nothing, share::GLFW.Window) at /home/graham/.julia/packages/GLFW/g1nX6/src/glfw3.jl:338
_  [4] top-level scope at /home/graham/.julia/packages/GLMakie/2xw8L/deps/build.jl:34
_  [5] include(::String) at ./client.jl:439
_  [6] top-level scope at none:5

Checking glxinfo -B

$ glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel (0x8086)
    Device: Mesa Intel(R) UHD Graphics (CML GT2) (0x9bca)
    Version: 20.0.4
    Accelerated: yes
    Video memory: 3072MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.0.4
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.0.4
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.0.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
SimonDanisch commented 4 years ago

Looks like: https://github.com/JuliaGL/GLFW.jl/issues/198

grahamas commented 4 years ago

Yes, thank you! The workaround in that issue fixed my problem.

For some reason ]build GLFW didn't produce any errors for me, so I discounted the many messages suggesting the problem might be with with GLFW.

SimonDanisch commented 4 years ago

Well, the messages come from GLMakie, since I do some more checks to verify that opengl is correctly installed - so the issue is still with GLFW ;)