yt-project / yt_idv

Interactive volume rendering for yt
Other
8 stars 6 forks source link

update build, np 2 compatibility #122

Closed chrishavlin closed 1 week ago

chrishavlin commented 1 week ago

Fixing the failures in #121

Update: Turns out the issue was actually PyOpenGl-accelerate, which we only have as a dependency for testing.

chrishavlin commented 1 week ago

failure was from https://github.com/pypa/twine/issues/1125

chrishavlin commented 1 week ago

trying to unpin np, i think it's related to using PyOpenGL_accelerate. in a fresh env locally, I get a clearer error message:

Traceback (most recent call last):
  File "/home/chavlin/src/yt_general/yt_idv/examples/amr_volume_rendering.py", line 7, in <module>
    rc = yt_idv.render_context(height=800, width=800, gui=True)
  File "/home/chavlin/src/yt_general/yt_idv/yt_idv/rendering_contexts/__init__.py", line 25, in render_context
    return PygletRenderingContext(**kwargs)
  File "/home/chavlin/src/yt_general/yt_idv/yt_idv/rendering_contexts/pyglet_context.py", line 61, in __init__
    gui = SimpleGUI(self)
  File "/home/chavlin/src/yt_general/yt_idv/yt_idv/simple_gui.py", line 20, in __init__
    self.renderer = create_renderer(window)
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/imgui/integrations/pyglet.py", line 245, in create_renderer
    return PygletProgrammablePipelineRenderer(window, attach_callbacks)
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/imgui/integrations/pyglet.py", line 213, in __init__
    super(PygletProgrammablePipelineRenderer, self).__init__()
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/imgui/integrations/pyglet.py", line 55, in __init__
    super(PygletMixin, self).__init__()
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/imgui/integrations/opengl.py", line 60, in __init__
    super(ProgrammablePipelineRenderer, self).__init__()
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/imgui/integrations/base.py", line 17, in __init__
    self._create_device_objects()
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/imgui/integrations/opengl.py", line 84, in _create_device_objects
    last_texture = gl.glGetIntegerv(gl.GL_TEXTURE_BINDING_2D)
  File "src/latebind.pyx", line 39, in OpenGL_accelerate.latebind.LateBind.__call__
  File "src/wrapper.pyx", line 303, in OpenGL_accelerate.wrapper.Wrapper.__call__
  File "src/wrapper.pyx", line 88, in OpenGL_accelerate.wrapper.CArgCalculator.c_call
  File "src/wrapper.pyx", line 69, in OpenGL_accelerate.wrapper.CArgCalculatorElement.c_call
  File "src/wrapper.pyx", line 64, in OpenGL_accelerate.wrapper.CArgCalculatorElement.c_call
  File "src/arraydatatype.pyx", line 355, in OpenGL_accelerate.arraydatatype.SizedOutputOrInput.c_call
  File "src/arraydatatype.pyx", line 224, in OpenGL_accelerate.arraydatatype.ArrayDatatype.c_zeros
  File "src/arraydatatype.pyx", line 69, in OpenGL_accelerate.arraydatatype.HandlerRegistry.c_get_output_handler
  File "src/arraydatatype.pyx", line 80, in OpenGL_accelerate.arraydatatype.HandlerRegistry.c_handler_by_plugin_name
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/OpenGL/plugins.py", line 18, in load
    return importByName( self.import_path )
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/OpenGL/plugins.py", line 45, in importByName
    module = __import__( ".".join(moduleName), {}, {}, moduleName)
  File "/home/chavlin/.pyenv/versions/yt_idv_np2/lib/python3.10/site-packages/OpenGL/arrays/numpymodule.py", line 28, in <module>
    from OpenGL_accelerate.numpy_formathandler import NumpyHandler
  File "src/numpy_formathandler.pyx", line 1, in init OpenGL_accelerate.numpy_formathandler
ValueError: ('numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject', 1, <OpenGL.platform.baseplatform.glGetIntegerv object at 0x7f53fc174780>)

likely that it's not compatible with np 2.

matthewturk commented 1 week ago

I do think we should check performance hits for this, in case there are any. I'm not sure the current state.