jimy-byerley / pymadcad

Simple yet powerful CAD (Computer Aided Design) library, written with Python.
https://madcad.netlify.app/
GNU Lesser General Public License v3.0
211 stars 16 forks source link

schemes shader compilation error due to too big array `spaces` #119

Open jimy-byerley opened 2 weeks ago

jimy-byerley commented 2 weeks ago

When displaying schemes with v0.17, it seems some recent nvidia GPUs have a too small area space for uniform arrays

tried to display <glm.dmat4x4 object at 0x7f88f23eb090>
Traceback (most recent call last):
  File "/home/ydejonghe/pymadcad/madcad/rendering.py", line 530, in dequeue
    self.displays[key] = self.display(displayable, self.displays.get(key))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/pymadcad/madcad/rendering.py", line 608, in display
    disp = overrides[type(obj)](self, obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/pymadcad/madcad/scheme.py", line 1232, in base_display
    return scene.display(note_base(mat))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/pymadcad/madcad/rendering.py", line 611, in display
    disp = obj.display(self, obj)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/pymadcad/madcad/scheme.py", line 240, in __init__
    self.shaders, self.shader_ident = scene.resource('scheme', self.load)
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/pymadcad/madcad/rendering.py", line 593, in resource
    res = func(self)
          ^^^^^^^^^^
  File "/home/ydejonghe/pymadcad/madcad/scheme.py", line 310, in load
    shader_ident = scene.ctx.program(
                   ^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/python-3.11.9/env/lib/python3.11/site-packages/moderngl/__init__.py", line 1727, in program
    res.mglo, _members, res._subroutines, res._geom, res._glo = self.mglo.program(
                                                                ^^^^^^^^^^^^^^^^^^
_moderngl.Error: GLSL Linker failed

Program
=======
Vertex info
-----------
0(14) : error C5041: cannot locate suitable resource to bind variable "spaces". Possibly large array.
0(13) : error C5041: cannot locate suitable resource to bind variable "spaces". Possibly large array.
0(11) : error C5041: cannot locate suitable resource to bind variable "proj". Possibly large array.

Exception ignored in: <function Scheme.display.__del__ at 0x7f88f9d184a0>
Traceback (most recent call last):
  File "/home/ydejonghe/pymadcad/madcad/scheme.py", line 296, in __del__
    for va in self.vas.values():
              ^^^^^^^^
AttributeError: 'display' object has no attribute 'vas'

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/home/ydejonghe/python-3.11.9/Lib/threading.py", line 1045, in _bootstrap_inner
    self.run()
  File "/home/ydejonghe/robot-cueillette/eve/process.py", line 85, in run
    self.result = self.target()
                  ^^^^^^^^^^^^^
  File "/home/ydejonghe/robot-cueillette/tests/test_pathfinding.py", line 163, in main
    choice = question('path found. run trajectory ?', ['run', 'new path', 'new target'])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/robot-cueillette/eve/gui.py", line 1033, in question
    return _question_waiter(text, choices, **kwargs).wait()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/robot-cueillette/eve/gui.py", line 995, in __init__
    qtschedule(self.build)
  File "/home/ydejonghe/robot-cueillette/eve/apputils.py", line 156, in qtschedule
    return qtthread.schedule(callback)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ydejonghe/robot-cueillette/eve/process.py", line 247, in schedule
    raise KeyboardInterrupt('slave exited')
KeyboardInterrupt: slave exited
jimy-byerley commented 1 week ago

let's try this when I have the limiting hardware at disposal

jimy-byerley commented 1 week ago
jimy-byerley commented 5 hours ago