Skip to content
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

GLFW couldn't create an OpenGL window #4732

Open
3 tasks done
Gauthameshwar opened this issue Jan 17, 2025 · 0 comments
Open
3 tasks done

GLFW couldn't create an OpenGL window #4732

Gauthameshwar opened this issue Jan 17, 2025 · 0 comments
Labels
bug GLMakie This relates to GLMakie.jl, the OpenGL backend for Makie.

Comments

@Gauthameshwar
Copy link

Gauthameshwar commented Jan 17, 2025

I am running GLMakie from a headless server to do X11 forwarding and get interactive graphs on my local PC. However, on installing GLMakie, I get this error:

julia> using GLMakie
Precompiling GLMakie...
Info Given GLMakie was explicitly requested, output will be shown live 
┌ Warning: 
│     GLFW couldn't create an OpenGL window.
│     This likely means, you don't have an OpenGL capable Graphic Card,
│     or you don't have an OpenGL 3.3 capable video driver installed.
│     Have a look at the troubleshooting section in the GLMakie readme:
│     https://github.com/MakieOrg/Makie.jl/tree/master/GLMakie#troubleshooting-opengl.
└ @ GLMakie ~/.julia/packages/GLMakie/TH3rf/src/screen.jl:261
ERROR: LoadError: GLFWError (VERSION_UNAVAILABLE): GLX: Forward compatibility requested but GLX_ARB_create_context_profile is unavailable
Stacktrace:
  [1] _ErrorCallbackWrapper(code::Int32, description::Cstring)
    @ GLFW ~/.julia/packages/GLFW/wmoTL/src/callback.jl:43
  [2] CreateWindow(width::Int64, height::Int64, title::String, monitor::GLFW.Monitor, share::GLFW.Window)
    @ GLFW ~/.julia/packages/GLFW/wmoTL/src/glfw3.jl:571
  [3] GLFW.Window(; name::String, resolution::Tuple{Int64, Int64}, debugging::Bool, major::Int64, minor::Int64, windowhints::Vector{Tuple{UInt32, Integer}}, contexthints::Vector{Tuple{UInt32, Integer}}, visible::Bool, focus::Bool, fullscreen::Bool, monitor::Nothing, share::GLFW.Window)
    @ GLFW ~/.julia/packages/GLFW/wmoTL/src/glfw3.jl:404
  [4] Window
    @ ~/.julia/packages/GLFW/wmoTL/src/glfw3.jl:362 [inlined]
  [5] empty_screen(debugging::Bool; reuse::Bool, window::Nothing)
    @ GLMakie ~/.julia/packages/GLMakie/TH3rf/src/screen.jl:252
  [6] empty_screen
    @ ~/.julia/packages/GLMakie/TH3rf/src/screen.jl:229 [inlined]
  [7] singleton_screen(debugging::Bool)
    @ GLMakie ~/.julia/packages/GLMakie/TH3rf/src/screen.jl:352
  [8] macro expansion
    @ ~/.julia/packages/GLMakie/TH3rf/src/precompiles.jl:21 [inlined]
  [9] macro expansion
    @ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:78 [inlined]
 [10] macro expansion
    @ ~/.julia/packages/GLMakie/TH3rf/src/precompiles.jl:18 [inlined]
 [11] macro expansion
    @ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:140 [inlined]
 [12] top-level scope
    @ ~/.julia/packages/GLMakie/TH3rf/src/precompiles.jl:16
 [13] include(mod::Module, _path::String)
    @ Base ./Base.jl:557
 [14] include(x::String)
    @ GLMakie ~/.julia/packages/GLMakie/TH3rf/src/GLMakie.jl:1
 [15] top-level scope
    @ ~/.julia/packages/GLMakie/TH3rf/src/GLMakie.jl:98
 [16] include
    @ ./Base.jl:557 [inlined]
 [17] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)◑ GLMakie
    @ Base ./loading.jl:2790
 [18] top-level scope
    @ stdin:5
in expression starting at /home/gautham/.julia/packages/GLMakie/TH3rf/src/precompiles.jl:15
in expression starting at /home/gautham/.julia/packages/GLMakie/TH3rf/src/GLMakie.jl:1
in expression starting at stdin:5
  ✗ GLMakie
  0 dependencies successfully precompiled in 39 seconds. 306 already precompiled.

As suggested by the error, I have followed the troubleshooting steps from the README here. Here are the output as I follow it:

gautham@m30:~$ which Xvfb
/usr/bin/Xvfb
gautham@m30:~$ glxinfo
name of display: localhost:10.0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  17
  Current serial number in output stream:  18
gautham@m30:~$ sudo apt install ubuntu-desktop mesa-utils
Reading package lists... Done
Building dependency tree... 50%
Building dependency tree       
Reading state information... Done
mesa-utils is already the newest version (8.3.0-1).
ubuntu-desktop is already the newest version (1.361.6).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
gautham@m30:~$ sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libgl1-mesa-glx' instead of 'libgl1'
libxext-dev is already the newest version (2:1.3.3-1).
libxi-dev is already the newest version (2:1.7.6-1).
libxinerama-dev is already the newest version (2:1.1.3-1).
libxrandr-dev is already the newest version (2:1.5.0-1).
freeglut3-dev is already the newest version (2.8.1-2).
mesa-utils is already the newest version (8.3.0-1).
libgl1-mesa-glx is already the newest version (18.0.5-0ubuntu0~16.04.1).
libxcursor-dev is already the newest version (1:1.1.14-1ubuntu0.16.04.2).
xorg-dev is already the newest version (1:7.7+13ubuntu3.1).
xvfb is already the newest version (2:1.18.4-0ubuntu0.12).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
gautham@m30:~$ xclock
gautham@m30:~$ glxinfo
name of display: localhost:10
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  17
  Current serial number in output stream:  18
gautham@m30:~$ glxgears
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  23
  Current serial number in output stream:  24
gautham@m30:~$ 

I don't know where or how to fix the issue. I have verified X11 forwarding is working on my remote server (xclock runs fine), and I have also installed all the packages as suggested in the troubleshooting exercises. Could someone please help me with this issue here? I would love an interactive GLMakie on a remote server rather than a static backend such as CairoMakie.

  • What version of Makie are you running? (]st -m Makie)
(@v1.11) pkg> st -m Makie
Status `~/.julia/environments/v1.11/Manifest.toml`
⌅ [ee78f7c6] Makie v0.21.18
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`

  • Can you reproduce the bug with a fresh environment? (]activate --temp; add Makie)
    I am running this command from a headless remote server, so I don't know how to reproduce this bug.

  • What platform + GPU are you on?

OS: Ubuntu 16.04 xenial
Kernel: x86_64 Linux 4.4.0-210-generic
Packages: 2457
Shell: shell integration-bash.sh
CPU: 2x Intel Xeon CPU E5-2698 v4 @ 3.6GHz
GPU: Quadro 600, Tesla K40c, Tesla K40c

gautham@m30:~$ nvidia-smi
Fri Jan 17 18:34:47 2025       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.116                Driver Version: 390.116                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro 600          On   | 00000000:02:00.0 Off |                  N/A |
| 30%   39C    P8    N/A /  N/A |      0MiB /   964MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla K40c          On   | 00000000:03:00.0 Off |                    0 |
| 23%   35C    P8    22W / 235W |      0MiB / 11441MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla K40c          On   | 00000000:81:00.0 Off |                    0 |
| 23%   42C    P8    23W / 235W |      0MiB / 11441MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
@t-bltg t-bltg added the GLMakie This relates to GLMakie.jl, the OpenGL backend for Makie. label Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug GLMakie This relates to GLMakie.jl, the OpenGL backend for Makie.
Projects
None yet
Development

No branches or pull requests

2 participants