[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] WXGui behaving badly on some systems

From: Marcus D. Leech
Subject: Re: [Discuss-gnuradio] WXGui behaving badly on some systems
Date: Wed, 05 Oct 2016 17:56:09 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 10/05/2016 05:35 PM, Sylvain Munaut wrote:
Hi Marcus,

   File "/usr/lib/python2.7/dist-packages/OpenGL/error.py", line 208, in
     baseOperation = baseOperation,
OpenGL.error.GLError: GLError(
     err = 1285,
     description = 'out of memory',
     baseOperation = glCallList,
     cArguments = (3L,)

They have an older system, with 2G of memory, but with 12G of swap.
RAM doesn't matter.

This is merely a reflection of buggy OpenGL drivers.
Display Lists are an outdated OpenGL feature that's most likely never
ever tested in any modern driver and so my guess is that they leak
resources when regenerating it and at somepoint they run out of
something ...

Try the patch below. It effectively disables the use of display list
and just issues all the commands every draw ... which for any kind of
modern GPU should really not be a problem.

diff --git a/gr-wxgui/python/wxgui/plotter/plotter_base.py
index ca90490..c4dbd26 100644
--- a/gr-wxgui/python/wxgui/plotter/plotter_base.py
+++ b/gr-wxgui/python/wxgui/plotter/plotter_base.py
@@ -49,20 +49,14 @@ class gl_cache(object):
                 To be called when gl initializes.
                 Create a new compiled list.
-               self._grid_compiled_list_id = GL.glGenLists(1)
+               pass

         def draw(self):
                 Draw the gl stuff using a compiled list.
                 If changed, reload the compiled list.
-               if self.changed():
-                       GL.glNewList(self._grid_compiled_list_id, GL.GL_COMPILE)
-                       self._draw()
-                       GL.glEndList()
-                       self.changed(False)
-               #draw the grid
-               GL.glCallList(self._grid_compiled_list_id)
+               self._draw()

         def changed(self, state=None):



reply via email to

[Prev in Thread] Current Thread [Next in Thread]