Genesis
Genesis copied to clipboard
Win10-WSL2-PROBLEMS
Windows-10-WSL2 Environment information
cuda driver in windows version = 12.6
cuda toolkit version in WSL
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Sep_12_02:18:05_PDT_2024
Cuda compilation tools, release 12.6, V12.6.77
Build cuda_12.6.r12.6/compiler.34841621_0
openGL version in WSL
glxinfo | grep "OpenGL version"
OpenGL version string: 3.1 Mesa 21.2.6
glxinfo | grep "OpenGL"
OpenGL vendor string: Microsoft Corporation
OpenGL renderer string: D3D12 (NVIDIA GeForce RTX 4060 Ti)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 21.2.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 21.2.6
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 21.2.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
PROBLEMS Lists
- 【SOLVED】pyglet.gl.ContextException: Could not create GL context
- 【OPEN】OpenGL.error.Error: Attempt to retrieve context when no valid context
【SOLVED】Problem 1 pyglet.gl.ContextException: Could not create GL context
When I finish setting up conda virtual environment(pytorch & genesis) and start to run hello_genesis.py, I encounter the following error message:
(genesis) root@L6o0:~/Genesis# /home/circlemoon/miniconda3/envs/genesis/bin/python /home/circlemoon/Genesis/examples/tutorials/hello_genesis.py
[Genesis] [17:20:39] [INFO] ╭─────────────────────────────────────────────────────────────────────────────────────╮
[Genesis] [17:20:39] [INFO] │┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉ Genesis ┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉┈┉│
[Genesis] [17:20:39] [INFO] ╰─────────────────────────────────────────────────────────────────────────────────────╯
[Genesis] [17:20:39] [INFO] Running on [AMD Ryzen 5 7500F 6-Core Processor] with backend gs.cpu. Device memory: 15.44 GB.
[Genesis] [17:20:39] [INFO] 🚀 Genesis initialized. 🔖 version: 0.2.0, 🌱 seed: None, 📏 precision: '32', 🐛 debug: False, 🎨 theme: 'dark'.
[Genesis] [17:20:40] [INFO] Scene <5708222> created.
[Genesis] [17:20:40] [INFO] Adding <gs.RigidEntity>. idx: 0, uid: <1535f0f>, morph: <gs.morphs.Plane>, material: <gs.materials.Rigid>.
[Genesis] [17:20:40] [INFO] Preprocessing geom idx 0.
[Genesis] [17:20:40] [INFO] Adding <gs.RigidEntity>. idx: 1, uid: <0c70d30>, morph: <gs.morphs.MJCF(file='/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/assets/xml/franka_emika_panda/panda.xml')>, material: <gs.materials.Rigid>.
[Genesis] [17:20:40] [INFO] Preprocessing geom idx 1.
[Genesis] [17:20:40] [INFO] Preprocessing geom idx 2.
[Genesis] [17:20:41] [INFO] Preprocessing geom idx 3.
[Genesis] [17:20:41] [INFO] Preprocessing geom idx 4.
[Genesis] [17:20:42] [INFO] Preprocessing geom idx 5.
[Genesis] [17:20:42] [INFO] Preprocessing geom idx 6.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 7.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 8.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 9.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 10.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 11.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 12.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 13.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 14.
[Genesis] [17:20:43] [INFO] Preprocessing geom idx 16.
[Genesis] [17:20:43] [INFO] Building scene <5708222>...
[Genesis] [17:20:51] [INFO] Compiling simulation kernels...
[Genesis] [17:21:14] [INFO] Building visualizer...
Exception in thread Thread-3 (_init_and_start_app):
Traceback (most recent call last):
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
self.run()
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/viewer.py", line 1126, in _init_and_start_app
super(Viewer, self).__init__(
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/pyglet/window/xlib/__init__.py", line 168, in __init__
super().__init__(*args, **kwargs)
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/pyglet/window/__init__.py", line 527, in __init__
context = config.create_context(gl.current_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/pyglet/gl/xlib.py", line 114, in create_context
return XlibContext(self, share)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/pyglet/gl/xlib.py", line 149, in __init__
raise gl.ContextException(msg)
pyglet.gl.ContextException: Could not create GL context
I found the reason of this error in WSL:
Due to the mapping NVida drivers to WSL2 limits the version of OpenGL is 3.1 (If using GPU hardware to render)
AND pyglet requires OpenGL 3.3+ since v2.0
SO the solution is to use software render OpenGL (With PREFIX: LIBGL_ALWAYS_SOFTWARE=1 python xxx.py
AND In order to enable software rendering, you need to use the following commands
sudo add-apt-repository ppa:kisak/kisak-mesa (or ppa:oibaf/graphics-drivers)
sudo apt update && sudo apt upgrade -y
references: https://github.com/pyglet/pyglet/issues/1047#issuecomment-1947999503
Here are the differences:
- GPU rendering
- SOFTWARE rendering
【OPEN】OpenGL.error.Error: Attempt to retrieve context when no valid context
BUT I encounter another problem
Although I have rendering an OpenGL window, but the content is empty
and here is the output:
Exception in thread Thread-2 (_init_and_start_app):
Traceback (most recent call last):
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
self.run()
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/viewer.py", line 1149, in _init_and_start_app
pyglet.clock.tick()
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/pyglet/clock.py", line 528, in tick
return _default.tick(poll)
^^^^^^^^^^^^^^^^^^^
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/pyglet/clock.py", line 270, in tick
self.call_scheduled_functions(delta_t)
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/pyglet/clock.py", line 217, in call_scheduled_functions
item.func(now - item.last_ts, *item.args, **item.kwargs)
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/viewer.py", line 941, in _time_event
self.on_draw()
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/viewer.py", line 640, in on_draw
self._render()
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/viewer.py", line 1086, in _render
retval = renderer.render(self.scene, flags, seg_node_map=seg_node_map)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/renderer.py", line 141, in render
self._update_context(scene, flags)
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/renderer.py", line 899, in _update_context
p._add_to_context()
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/genesis/ext/pyrender/primitive.py", line 359, in _add_to_context
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, FLOAT_SZ * 3, ctypes.c_void_p(0))
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/OpenGL/latebind.py", line 63, in __call__
return self.wrapperFunction( self.baseFunction, *args, **named )
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/OpenGL/GL/VERSION/GL_2_0.py", line 469, in glVertexAttribPointer
contextdata.setValue( key, array )
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/OpenGL/contextdata.py", line 58, in setValue
context = getContext( context )
^^^^^^^^^^^^^^^^^^^^^
File "/home/circlemoon/miniconda3/envs/genesis/lib/python3.12/site-packages/OpenGL/contextdata.py", line 40, in getContext
raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context