Skip to content

Instantly share code, notes, and snippets.

@DragaDoncila
Created March 17, 2025 02:31
Show Gist options
  • Save DragaDoncila/0b68891f7b4eaed98c81b9f94107a6f4 to your computer and use it in GitHub Desktop.
Save DragaDoncila/0b68891f7b4eaed98c81b9f94107a6f4 to your computer and use it in GitHub Desktop.
WARNING: Error drawing visual <Volume at 0x7f412d5f5fd0>
13:07:30 : WARNING : MainThread : Error drawing visual <Volume at 0x7f412d5f5fd0>
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/app/backends/_qt.py:928, in CanvasBackendDesktop.paintGL(self=<vispy.app.backends._qt.CanvasBackendDesktop object>)
926 # (0, 0, self.width(), self.height()))
927 self._vispy_canvas.set_current()
--> 928 self._vispy_canvas.events.draw(region=None)
self._vispy_canvas = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
self._vispy_canvas.events.draw = <vispy.util.event.EventEmitter object at 0x7f412d5e4140>
self = <vispy.app.backends._qt.CanvasBackendDesktop object at 0x7f412d6d3920>
self._vispy_canvas.events = <vispy.util.event.EmitterGroup object at 0x7f412d6b8e00> 930 # Clear the alpha channel with QOpenGLWidget (Qt >= 5.4), otherwise the
931 # window is translucent behind non-opaque objects.
932 # Reference: MRtrix3/mrtrix3#266
933 if QT5_NEW_API or PYSIDE6_API or PYQT6_API:
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/util/event.py:453, in EventEmitter.__call__(self=<vispy.util.event.EventEmitter object>, *args=(), **kwargs={'region': None})
450 if self._emitting > 1:
451 raise RuntimeError('EventEmitter loop detected!')
--> 453 self._invoke_callback(cb, event)
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
self = <vispy.util.event.EventEmitter object at 0x7f412d5e4140>
cb = <bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>> 454 if event.blocked:
455 break
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/util/event.py:471, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
469 cb(event)
470 except Exception:
--> 471 _handle_exception(self.ignore_callback_errors,
self = <vispy.util.event.EventEmitter object at 0x7f412d5e4140>
cb = <bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
(cb, event) = (<bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>>, <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>) 472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/util/event.py:469, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
467 def _invoke_callback(self, cb, event):
468 try:
--> 469 cb(event)
cb = <bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw> 470 except Exception:
471 _handle_exception(self.ignore_callback_errors,
472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/canvas.py:219, in SceneCanvas.on_draw(self=<NapariSceneCanvas (PyQt5)>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
216 # Now that a draw event is going to be handled, open up the
217 # scheduling of further updates
218 self._update_pending = False
--> 219 self._draw_scene()
self = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/canvas.py:278, in SceneCanvas._draw_scene(self=<NapariSceneCanvas (PyQt5)>, bgcolor=array([0., 0., 0., 1.], dtype=float32))
276 bgcolor = self._bgcolor
277 self.context.clear(color=bgcolor, depth=True)
--> 278 self.draw_visual(self.scene)
self = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/canvas.py:316, in SceneCanvas.draw_visual(self=<NapariSceneCanvas (PyQt5)>, visual=<SubScene>, event=None)
314 else:
315 if hasattr(node, 'draw'):
--> 316 node.draw()
node = <Volume at 0x7f412d5f5fd0> 317 prof.mark(str(node))
318 else:
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/visuals.py:106, in VisualNode.draw(self=<Volume>)
104 if self.picking and not self.interactive:
105 return
--> 106 self._visual_superclass.draw(self)
self = <Volume at 0x7f412d5f5fd0>
self._visual_superclass = <class 'vispy.visuals.volume.VolumeVisual'>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/visuals/visual.py:514, in Visual.draw(self=<Volume>)
512 self._configure_gl_state()
513 try:
--> 514 self._program.draw(self._vshare.draw_mode,
self._vshare.draw_mode = 'triangle_strip'
self = <Volume at 0x7f412d5f5fd0>
self._vshare = <vispy.visuals.visual.VisualShare object at 0x7f40a4b91580>
self._program = <vispy.visuals.shaders.program.ModularProgram object at 0x7f40a4bb90a0>
self._vshare.index_buffer = <IndexBuffer size=14 last_dim=1> 515 self._vshare.index_buffer)
516 except Exception:
517 logger.warning("Error drawing visual %r" % self)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/visuals/shaders/program.py:102, in ModularProgram.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, *args=('triangle_strip', <IndexBuffer size=14 last_dim=1>), **kwargs={})
100 self.build_if_needed()
101 self.update_variables()
--> 102 Program.draw(self, *args, **kwargs)
self = <vispy.visuals.shaders.program.ModularProgram object at 0x7f40a4bb90a0>
args = ('triangle_strip', <IndexBuffer size=14 last_dim=1>)
kwargs = {}
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/program.py:543, in Program.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, mode='triangle_strip', indices=<IndexBuffer size=14 last_dim=1>, check_error=True)
539 raise TypeError("Invalid index: %r (must be IndexBuffer)" %
540 indices)
542 # Process GLIR commands
--> 543 canvas.context.flush_commands()
canvas = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/context.py:172, in GLContext.flush_commands(self=<GLContext>, event=None)
170 fbo = 0
171 self.shared.parser.parse([('CURRENT', 0, fbo)])
--> 172 self.glir.flush(self.shared.parser)
self = <GLContext at 0x7f412d5e46e0>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:584, in GlirQueue.flush(self=<vispy.gloo.glir.GlirQueue object>, parser=<vispy.gloo.glir.GlirParser object>)
582 def flush(self, parser):
583 """Flush all current commands to the GLIR interpreter."""
--> 584 self._shared.flush(parser)
parser = <vispy.gloo.glir.GlirParser object at 0x7f412d5e4680>
self._shared = <vispy.gloo.glir._GlirQueueShare object at 0x7f412d5e4770>
self = <vispy.gloo.glir.GlirQueue object at 0x7f412d5e45c0>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:506, in _GlirQueueShare.flush(self=<vispy.gloo.glir._GlirQueueShare object>, parser=<vispy.gloo.glir.GlirParser object>)
504 show = self._verbose if isinstance(self._verbose, str) else None
505 self.show(show)
--> 506 parser.parse(self._filter(self.clear(), parser))
self = <vispy.gloo.glir._GlirQueueShare object at 0x7f412d5e4770>
parser = <vispy.gloo.glir.GlirParser object at 0x7f412d5e4680>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:824, in GlirParser.parse(self=<vispy.gloo.glir.GlirParser object>, commands=[('FUNC', 'glViewport', 0, 0, 778, 580), ('FUNC', 'glClearColor', np.float32(0.0), np.float32(0.0), np.float32(0.0), np.float32(1.0)), ('FUNC', 'glClear', 17664), ('FUNC', 'glDisable', 'cull_face'), ('FUNC', 'glDisable', 'depth_test'), ('FUNC', 'glEnable', 'blend'), ('FUNC', 'glBlendFuncSeparate', 'src_alpha', 'one_minus_src_alpha', 'one', 'one'), ('FUNC', 'glBlendEquationSeparate', 'func_add', 'func_add'), ('CREATE', 53, 'Program'), ('CREATE', 119, 'VertexShader'), ('DATA', 119, 0, 'uniform mat4 u_matrix;\n\nvec4 affine_transform_ma...ransform_map_chain_11(vec4(v_position, 1.0));\n}\n\n'), ('ATTACH', 53, 119), ('CREATE', 120, 'FragmentShader'), ('DATA', 120, 0, 'uniform mat4 u_matrix;\n\nvec4 affine_transform_ma...)/2.0;\n\n apply_alpha();\npicking_filter();\n\n}\n\n'), ('ATTACH', 53, 120), ('LINK', 53), ('DELETE', 119), ('DELETE', 120), ('UNIFORM', 53, 'u_alpha', 'float', array([1.], dtype=float32)), ('UNIFORM', 53, 'u_enabled', 'int', array([0], dtype=int32)), ...])
821 self._objects.pop(id_)
823 for command in commands:
--> 824 self._parse(command)
command = ('DRAW', 53, 'triangle_strip', (54, 'UNSIGNED_INT', 14), 1)
self = <vispy.gloo.glir.GlirParser object at 0x7f412d5e4680>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:786, in GlirParser._parse(self=<vispy.gloo.glir.GlirParser object>, command=('DRAW', 53, 'triangle_strip', (54, 'UNSIGNED_INT', 14), 1))
783 # Triage over command. Order of commands is set so most
784 # common ones occur first.
785 if cmd == 'DRAW': # Program
--> 786 ob.draw(*args)
args = ('triangle_strip', (54, 'UNSIGNED_INT', 14), 1)
ob = <GlirProgram 53 at 0x7f40a4bb9130> 787 elif cmd == 'TEXTURE': # Program
788 ob.set_texture(*args)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:1333, in GlirProgram.draw(self=<GlirProgram 53>, mode='triangle_strip', selection=(54, 'UNSIGNED_INT', 14), instances=1)
1331 raise RuntimeError('Cannot draw program if code has not been set')
1332 # Init
-> 1333 gl.check_error('Check before draw')
gl = <module 'vispy.gloo.gl' from '/home/ddon0001/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/gl/__init__.py'> 1334 try:
1335 mode = as_enum(mode)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/gl/__init__.py:204, in check_error(when='Check before draw')
202 err.errors = errors
203 err.err = errors[-1] # pyopengl compat
--> 204 raise err
err = RuntimeError('OpenGL got errors (Check before draw): GL_INVALID_ENUM')
RuntimeError: OpenGL got errors (Check before draw): GL_INVALID_ENUM
WARNING: Error drawing visual <Volume at 0x7f40a4cc33e0>
13:07:30 : WARNING : MainThread : Error drawing visual <Volume at 0x7f40a4cc33e0>
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/app/backends/_qt.py:928, in CanvasBackendDesktop.paintGL(self=<vispy.app.backends._qt.CanvasBackendDesktop object>)
926 # (0, 0, self.width(), self.height()))
927 self._vispy_canvas.set_current()
--> 928 self._vispy_canvas.events.draw(region=None)
self._vispy_canvas = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
self._vispy_canvas.events.draw = <vispy.util.event.EventEmitter object at 0x7f412d5e4140>
self = <vispy.app.backends._qt.CanvasBackendDesktop object at 0x7f412d6d3920>
self._vispy_canvas.events = <vispy.util.event.EmitterGroup object at 0x7f412d6b8e00> 930 # Clear the alpha channel with QOpenGLWidget (Qt >= 5.4), otherwise the
931 # window is translucent behind non-opaque objects.
932 # Reference: MRtrix3/mrtrix3#266
933 if QT5_NEW_API or PYSIDE6_API or PYQT6_API:
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/util/event.py:453, in EventEmitter.__call__(self=<vispy.util.event.EventEmitter object>, *args=(), **kwargs={'region': None})
450 if self._emitting > 1:
451 raise RuntimeError('EventEmitter loop detected!')
--> 453 self._invoke_callback(cb, event)
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
self = <vispy.util.event.EventEmitter object at 0x7f412d5e4140>
cb = <bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>> 454 if event.blocked:
455 break
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/util/event.py:471, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
469 cb(event)
470 except Exception:
--> 471 _handle_exception(self.ignore_callback_errors,
self = <vispy.util.event.EventEmitter object at 0x7f412d5e4140>
cb = <bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>
(cb, event) = (<bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>>, <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>) 472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/util/event.py:469, in EventEmitter._invoke_callback(self=<vispy.util.event.EventEmitter object>, cb=<bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5)>>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
467 def _invoke_callback(self, cb, event):
468 try:
--> 469 cb(event)
cb = <bound method SceneCanvas.on_draw of <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>>
event = <DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw> 470 except Exception:
471 _handle_exception(self.ignore_callback_errors,
472 self.print_callback_errors,
473 self, cb_event=(cb, event))
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/canvas.py:219, in SceneCanvas.on_draw(self=<NapariSceneCanvas (PyQt5)>, event=<DrawEvent blocked=False handled=False native=None region=None source=None sources=[] type=draw>)
216 # Now that a draw event is going to be handled, open up the
217 # scheduling of further updates
218 self._update_pending = False
--> 219 self._draw_scene()
self = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/canvas.py:278, in SceneCanvas._draw_scene(self=<NapariSceneCanvas (PyQt5)>, bgcolor=array([0., 0., 0., 1.], dtype=float32))
276 bgcolor = self._bgcolor
277 self.context.clear(color=bgcolor, depth=True)
--> 278 self.draw_visual(self.scene)
self = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/canvas.py:316, in SceneCanvas.draw_visual(self=<NapariSceneCanvas (PyQt5)>, visual=<SubScene>, event=None)
314 else:
315 if hasattr(node, 'draw'):
--> 316 node.draw()
node = <Volume at 0x7f40a4cc33e0> 317 prof.mark(str(node))
318 else:
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/scene/visuals.py:106, in VisualNode.draw(self=<Volume>)
104 if self.picking and not self.interactive:
105 return
--> 106 self._visual_superclass.draw(self)
self = <Volume at 0x7f40a4cc33e0>
self._visual_superclass = <class 'vispy.visuals.volume.VolumeVisual'>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/visuals/visual.py:514, in Visual.draw(self=<Volume>)
512 self._configure_gl_state()
513 try:
--> 514 self._program.draw(self._vshare.draw_mode,
self._vshare.draw_mode = 'triangle_strip'
self = <Volume at 0x7f40a4cc33e0>
self._vshare = <vispy.visuals.visual.VisualShare object at 0x7f40a4b7c800>
self._program = <vispy.visuals.shaders.program.ModularProgram object at 0x7f409da30f50>
self._vshare.index_buffer = <IndexBuffer size=14 last_dim=1> 515 self._vshare.index_buffer)
516 except Exception:
517 logger.warning("Error drawing visual %r" % self)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/visuals/shaders/program.py:102, in ModularProgram.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, *args=('triangle_strip', <IndexBuffer size=14 last_dim=1>), **kwargs={})
100 self.build_if_needed()
101 self.update_variables()
--> 102 Program.draw(self, *args, **kwargs)
self = <vispy.visuals.shaders.program.ModularProgram object at 0x7f409da30f50>
args = ('triangle_strip', <IndexBuffer size=14 last_dim=1>)
kwargs = {}
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/program.py:543, in Program.draw(self=<vispy.visuals.shaders.program.ModularProgram object>, mode='triangle_strip', indices=<IndexBuffer size=14 last_dim=1>, check_error=True)
539 raise TypeError("Invalid index: %r (must be IndexBuffer)" %
540 indices)
542 # Process GLIR commands
--> 543 canvas.context.flush_commands()
canvas = <NapariSceneCanvas (PyQt5) at 0x7f412dc18e30>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/context.py:172, in GLContext.flush_commands(self=<GLContext>, event=None)
170 fbo = 0
171 self.shared.parser.parse([('CURRENT', 0, fbo)])
--> 172 self.glir.flush(self.shared.parser)
self = <GLContext at 0x7f412d5e46e0>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:584, in GlirQueue.flush(self=<vispy.gloo.glir.GlirQueue object>, parser=<vispy.gloo.glir.GlirParser object>)
582 def flush(self, parser):
583 """Flush all current commands to the GLIR interpreter."""
--> 584 self._shared.flush(parser)
parser = <vispy.gloo.glir.GlirParser object at 0x7f412d5e4680>
self._shared = <vispy.gloo.glir._GlirQueueShare object at 0x7f412d5e4770>
self = <vispy.gloo.glir.GlirQueue object at 0x7f412d5e45c0>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:506, in _GlirQueueShare.flush(self=<vispy.gloo.glir._GlirQueueShare object>, parser=<vispy.gloo.glir.GlirParser object>)
504 show = self._verbose if isinstance(self._verbose, str) else None
505 self.show(show)
--> 506 parser.parse(self._filter(self.clear(), parser))
self = <vispy.gloo.glir._GlirQueueShare object at 0x7f412d5e4770>
parser = <vispy.gloo.glir.GlirParser object at 0x7f412d5e4680>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:824, in GlirParser.parse(self=<vispy.gloo.glir.GlirParser object>, commands=[('FUNC', 'glDisable', 'cull_face'), ('FUNC', 'glDisable', 'depth_test'), ('FUNC', 'glEnable', 'blend'), ('FUNC', 'glBlendFuncSeparate', 'src_alpha', 'dst_alpha', 'one', 'one'), ('FUNC', 'glBlendEquationSeparate', 'func_add', 'func_add'), ('CREATE', 90, 'Program'), ('CREATE', 121, 'VertexShader'), ('DATA', 121, 0, 'uniform mat4 u_matrix;\n\nvec4 affine_transform_ma...ransform_map_chain_11(vec4(v_position, 1.0));\n}\n\n'), ('ATTACH', 90, 121), ('CREATE', 122, 'FragmentShader'), ('DATA', 122, 0, 'uniform mat4 u_matrix;\n\nvec4 affine_transform_ma...)/2.0;\n\n apply_alpha();\npicking_filter();\n\n}\n\n'), ('ATTACH', 90, 122), ('LINK', 90), ('DELETE', 121), ('DELETE', 122), ('UNIFORM', 90, 'u_alpha', 'float', array([1.], dtype=float32)), ('UNIFORM', 90, 'u_enabled', 'int', array([0], dtype=int32)), ('UNIFORM', 90, 'u_id_color', 'vec4', array([0.10588, 0. , 0. , 0. ], dtype=float32)), ('UNIFORM', 90, 'u_inv_matrix', 'mat4', array([ 1. , 0. , ..., 29.5, 1. ], dtype=float32)), ('UNIFORM', 90, 'u_inv_matrix_1', 'mat4', array([180.73322, 0. , ..., 0. , 1. ], dtype=float32)), ...])
821 self._objects.pop(id_)
823 for command in commands:
--> 824 self._parse(command)
command = ('DRAW', 90, 'triangle_strip', (91, 'UNSIGNED_INT', 14), 1)
self = <vispy.gloo.glir.GlirParser object at 0x7f412d5e4680>
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:786, in GlirParser._parse(self=<vispy.gloo.glir.GlirParser object>, command=('DRAW', 90, 'triangle_strip', (91, 'UNSIGNED_INT', 14), 1))
783 # Triage over command. Order of commands is set so most
784 # common ones occur first.
785 if cmd == 'DRAW': # Program
--> 786 ob.draw(*args)
args = ('triangle_strip', (91, 'UNSIGNED_INT', 14), 1)
ob = <GlirProgram 90 at 0x7f409da85fd0> 787 elif cmd == 'TEXTURE': # Program
788 ob.set_texture(*args)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/glir.py:1333, in GlirProgram.draw(self=<GlirProgram 90>, mode='triangle_strip', selection=(91, 'UNSIGNED_INT', 14), instances=1)
1331 raise RuntimeError('Cannot draw program if code has not been set')
1332 # Init
-> 1333 gl.check_error('Check before draw')
gl = <module 'vispy.gloo.gl' from '/home/ddon0001/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/gl/__init__.py'> 1334 try:
1335 mode = as_enum(mode)
File ~/miniconda3/envs/opengl/lib/python3.12/site-packages/vispy/gloo/gl/__init__.py:204, in check_error(when='Check before draw')
202 err.errors = errors
203 err.err = errors[-1] # pyopengl compat
--> 204 raise err
err = RuntimeError('OpenGL got errors (Check before draw): GL_INVALID_ENUM')
RuntimeError: OpenGL got errors (Check before draw): GL_INVALID_ENUM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment