Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#211 glDeleteFramebuffersEXT Bug

v3.0.0
closed-fixed
nobody
None
5
2009-07-18
2009-04-02
Francois Lagunas
No

The glDeleteFramebuffersEXT does not seem to work. The bug lead to an opengl "out of memory" error when allocating and disallocating a large number of fbos (~ 200 ).
In the attachement, a C++ version is included for comparison : the fbo id is recycled and then reused after glDeleteFramebuffersEXT is called, but not in the python version.
This is true for at least the 3.0.0 version .

Discussion

  • C++ / python source code for comparison

     
    Attachments
  • My bad but ...
    You have to call the glDeleteFramebuffersEXT this way :

    fbo_id0, fbo_id1 = EXT.glGenFramebuffersEXT(1)

    glDeleteRenderbuffersEXT (1, numpy.array(fbo_id0))

    or

    glDeleteRenderbuffersEXT (2, numpy.array([fbo_id0, fbo_id1]))

    and not

    glDeleteRenderbuffersEXT (1, [int(fbo_id)])

    which fails silently ...

    The doc is very sparse on the subject, and the fact that it fails silently is not very cool ...

     
    • status: open --> closed-fixed
     
  • Running your original code on Linux AMD64 with the PyOpenGL bzr head, the code works and the IDs are recycled (that is, no silent failure observed). Wrappers have also been added so you can pass any of the raw uint, an array or the list as a single value to the delete operations. ARB version has been similarly wrapped.