Closed XilinJia closed 5 years ago
hi, on what system are you?! make sure you have the latest gpu drivers installed!
The system is Manjaro running in VirtualBox on a MacBook Pro. How can I find out what GPU drivers are missing?
ah virtual box is tough with opengl - or impossible? Not sure, might have changed in recent versions!
Oh. Opengl was my thing back in the 90's. But I haven't touched it for long. Might be a good occasion to revisit. Thanks for making Makie.
It's not due to VirtualBox. I did a test on a Ubuntu 18.04 in the same VirtualBox, and Makie works. Somehow there are some software not compatible on Manjaro.
You memtioned in the manual that GLFW requires "ffmpeg cmake xorg-dev" to compile. However, on Manjaro, I can't find xorg-dev, but GLFW seems to compile fine. Could that be a reason for Makie to fail to run?
Makie worked in Ubuntu because "Enable 3D Acceleration" on VirtualBox was NOT checked, and so (somehow), it uses a VMWare/SGI driver for glx, which supports a much later version of OpenGL (3.3 or so). If check "Enable 3D Acceleration", then Ubuntu uses a VirtualBox/Chromium driver, which is very premitive, and in this case, Makie fails as in Manjaro. I had the 3D Acceleration enabled for Manjaro. But if I disable it, Manjaro also got (the same?) VMWare/SGI driver, plus some errors like:
$ glxinfo -B
name of display: :0.0
**libGL error: pci id for fd 4: 80ee:beef, driver (null)
libGL error: No driver found
libGL error: failed to load driver: (null)**
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: VMware, Inc. (0xffffffff)
Device: llvmpipe (LLVM 6.0, 256 bits) (0xffffffff)
Version: 18.2.1
Accelerated: no
Video memory: 3828MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 3.3
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.2.1
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 3.1 Mesa 18.2.1
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.2.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
When I run Makie now, I get a different error:
julia> using Makie
[ Info: Recompiling stale cache file /home/djia/.julia/compiled/v1.0/Makie/iZ1Bl.ji for Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a]
julia> scene = Scene()
**libGL error: pci id for fd 21: 80ee:beef, driver (null)
libGL error: No driver found
libGL error: failed to load driver: (null)
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
Error showing value of type Scene:
ERROR: GLFWError (VERSION_UNAVAILABLE): GLX: Failed to create context: GLXBadFBConfig**
Stacktrace:
[1] _ErrorCallbackWrapper(::Int32, ::Cstring) at /home/djia/.julia/packages/GLFW/pkSlg/src/callback.jl:43
[2] CreateWindow(::Int64, ::Int64, ::String, ::GLFW.Monitor, ::GLFW.Window) at /home/djia/.julia/packages/GLFW/pkSlg/src/glfw3.jl:479
[3] #Window#15(::String, ::Tuple{Int64,Int64}, ::Bool, ::Int64, ::Int64, ::Array{Tuple{UInt32,Int64},1}, ::Array{Tuple{UInt32,Integer},1}, ::Bool, ::Bool, ::Bool, ::Nothing, ::GLFW.Window, ::Type) at /home/djia/.julia/packages/GLFW/pkSlg/src/glfw3.jl:338
[4] (::getfield(Core, Symbol("#kw#Type")))(::NamedTuple{(:name, :resolution, :windowhints, :visible),Tuple{String,Tuple{Int64,Int64},Array{Tuple{UInt32,Int64},1},Bool}}, ::Type{GLFW.Window}) at ./none:0
[5] #Screen#61(::Tuple{Int64,Int64}, ::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Type) at /home/djia/.julia/packages/Makie/YPDAk/src/glbackend/screen.jl:132
[6] Type at /home/djia/.julia/packages/Makie/YPDAk/src/glbackend/screen.jl:125 [inlined]
[7] global_gl_screen() at /home/djia/.julia/packages/Makie/YPDAk/src/glbackend/screen.jl:188
[8] display(::Makie.MakieDisplay, ::Scene) at /home/djia/.julia/packages/Makie/YPDAk/src/Makie.jl:51
[9] display(::Scene) at ./multimedia.jl:287
[10] #invokelatest#1 at ./essentials.jl:686 [inlined]
[11] invokelatest at ./essentials.jl:685 [inlined]
[12] print_response(::IO, ::Any, ::Any, ::Bool, ::Bool, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/REPL/src/REPL.jl:154
[13] print_response(::REPL.AbstractREPL, ::Any, ::Any, ::Bool, ::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/REPL/src/REPL.jl:139
[14] (::getfield(REPL, Symbol("#do_respond#40")){Bool,getfield(REPL, Symbol("##50#59")){REPL.LineEditREPL,REPL.REPLHistoryProvider},REPL.LineEditREPL,REPL.LineEdit.Prompt})(::Any, ::Any, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/REPL/src/REPL.jl:708
[15] #invokelatest#1 at ./essentials.jl:686 [inlined]
[16] invokelatest at ./essentials.jl:685 [inlined]
[17] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/REPL/src/LineEdit.jl:2261
[18] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/REPL/src/REPL.jl:1029
[19] run_repl(::REPL.AbstractREPL, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/REPL/src/REPL.jl:191
[20] (::getfield(Base, Symbol("##720#722")){Bool,Bool,Bool,Bool})(::Module) at ./logging.jl:311
[21] #invokelatest#1 at ./essentials.jl:686 [inlined]
[22] invokelatest at ./essentials.jl:685 [inlined]
[23] macro expansion at ./logging.jl:308 [inlined]
[24] run_main_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at ./client.jl:330
[25] exec_options(::Base.JLOptions) at ./client.jl:242
[26] _start() at ./client.jl:421
I searched but couldn't find a solution to
libGL error: failed to load driver
glxgears works though in Manjaro, inspite of the libGL errors.
That could be, because the opengl version is too low?!
Nevermind, seems to be 3.3
But I had a pretty bad experience with the llvm pipe software renderer so far - lots of bugs when you use higher opengl versions.
I'm also getting the same GLXBadFBConfig error. On Ubuntu, Julia 1.0.1,
Fri Oct 5 12:46:50 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48 Driver Version: 410.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 980 Ti Off | 00000000:06:00.0 Off | N/A |
| 0% 58C P0 68W / 390W | 0MiB / 6083MiB | 2% Default |
+-------------------------------+----------------------+----------------------+
I successfully precompiled the packages on Ubuntu 18.04 after doing the following:
terminal:
sudo apt install libglfw3 libglfw3-dev
pkg3:
add GLFW Makie
build
precompile
I guess only the first step is necessary.
Please report GLFW issues after checking:
sudo apt-get install xorg-dev cmake
)
Install and compile seem successful:
But fails to run: