I'm having the same issue. Would you mind sharing the exact solution?
Thanks

Danny

On Aug 29, 12:01 pm, jason <[EMAIL PROTECTED]> wrote:
> Just to follow-up.  We never were able to resolve the leak on OS X
> boxes, but re-implementing the texture assignments in pure OpenGL did
> the trick.  Thanks again.
>
> jason & mark
>
> On Aug 28, 10:47 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
>
> > Hi alex,
>
> > Thanks for the suggestions, I tried it out with the debug:
>
> > 8388608 (-8388608)
> > 16777216 (+8388608)
> > 8388608 (-8388608)
> > 16777216 (+8388608)
> > 8388608 (-8388608)
> > 16777216 (+8388608)
> > 8388608 (-8388608)
> > 16777216 (+8388608)
> > 8388608 (-8388608)
> > 16777216 (+8388608)
> > 8388608 (-8388608)
>
> > and after little while of running:
>
> >  PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS RPRVT  RSHRD  RSIZE
> > VSIZE
> > 15816 Python           69.4%   1:34.97   2    86        979
> > 1592M+ 15M-      1570M+ 2097M+
>
> > We tried it out on OS X 10.4 and 10.5, and the leak was still present,
> > in 10.4 the leak appeared to be in virtual memory and in 10.5 main
> > memory.  10.5: RadeonX1600 10.4: GMA 950
> > We have to stick to the Mac platform.  Any other suggestions?
>
> > thanks,
> > jason  + mark
>
> > On Aug 27, 6:35 pm, "Alex Holkner" <[EMAIL PROTECTED]> wrote:
>
> > > On 8/27/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> > > >  I'm trying to animate a loop through a set of images at an average of
> > > >  1 fps, convert them to textures and then map them to a quad.
> > > >  I'm not loading them into memory at the start, but on the fly.
> > > >  Running with only three images at 1600x900 the script dies within a
> > > >  minute or so with a memory error.
>
> > > >  I'm reassigning the texture variable (self.img) with each loop, and
> > > >  have tried several ways to garbage collect it but
> > > >  it appears the texture data persists until it overflows.  Am I going
> > > >  about this wrong, has anyone else encountered this?
>
> > > >  i've tried:
> > > >    self.img = None
> > > >    del self.img
> > > >    ...etc...
>
> > > >  It's important for this to be scalable, so loading them all into
> > > >  memory at the start is not an option.
>
> > > >  from __future__ import division
> > > >  from math import pi, sin, cos
> > > >  from numpy import *
> > > >  from pyglet import image
> > > >  from pyglet.gl import *
> > > >  from pyglet import clock
> > > >  from pyglet import window
> > > >  from pyglet.window import key
> > > >  import pyglet
> > > >  import random
> > > >  import glob, os, sys
> > > >  import gc
>
> > > >  try:
> > > >         config = Config(sample_buffers=1, samples=4, 
> > > > double_buffer=True,)
> > > >         w = window.Window(resizable=True, config=config)
>
> > > >  except window.NoSuchConfigException:
> > > >         w = window.Window(resizable=True)
>
> > > >  def setup():
> > > >         glClearColor(0, 0, 0, 1)
> > > >         glDisable(GL_DEPTH_TEST)
> > > >         glEnable(GL_LIGHT0)
> > > >         glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR)
> > > >         glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR)
> > > >         glEnable(player.img.target)
> > > >         glBindTexture(player.img.target, player.img.id)
>
> > > > [EMAIL PROTECTED]
> > > >  def on_resize(width, height):
> > > >         glViewport(0, 0, width, height)
> > > >         glMatrixMode(GL_PROJECTION)
> > > >         glLoadIdentity()
> > > >         gluPerspective(60., float(width) / float(height), .1, 1000.)
> > > >         glMatrixMode(GL_MODELVIEW)
> > > >         glClearColor(0, 0, 0, 1)
> > > >         glDisable(GL_DEPTH_TEST)
> > > >         glEnable(GL_LIGHT0)
> > > >         glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR)
> > > >         glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR)
> > > >         glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
> > > >         return pyglet.event.EVENT_HANDLED
>
> > > >  class Player():
> > > >         def __init__(self):
> > > >            self.images = ['image.png','image2.png','iamge3.png']
> > > >            self.x = 0
> > > >            self.img = image.load(self.images[0]).texture
> > > >         def new_img(self,dt):
> > > >                 self.x += 1
> > > >                 self.img = image.load(self.images[self.x%3]).texture
>
> > > >         def draw(self):
> > > >                 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
> > > >                 glBegin(GL_QUADS)
> > > >                 glTexCoord2f(0,0)
> > > >                 glVertex2f(-1,-1)
> > > >                 glTexCoord2f(0,1)
> > > >                 glVertex2f(-1,1)
> > > >                 glTexCoord2f(1,1)
> > > >                 glVertex2f(1,1)
> > > >                 glTexCoord2f(1,0)
> > > >                 glVertex2f(1,-1)
> > > >                 glEnd()
>
> > > >  player = Player()
> > > >  setup()
>
> > > >  pyglet.clock.schedule_interval(player.new_img, 0.001)
>
> > > > [EMAIL PROTECTED]
> > > >  def on_draw():
> > > >         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
> > > >         glLoadIdentity()
> > > >         glTranslatef(0,0,-3)
> > > >         player.draw()
>
> > > >  pyglet.app.run()
>
> > > Hello,
>
> > > I tried your program with some reasonably-sized images but didn't see
> > > any memory leak, nor did the program crash.  This probably means the
> > > problem is specific to your video driver or operating system (which
> > > you didn't specify).
>
> > > If you set the environment variable PYGLET_DEBUG_TEXTURE to 1, pyglet
> > > will print out its estimate of the current texture memory usage after
> > > any texture allocation or deallocation.  For example, I get:
>
> > > 4194304 (+4194304)
> > > 8388608 (+4194304)
> > > 4194304 (-4194304)
> > > 8388608 (+4194304)
> > > 4194304 (-4194304)
> > > 8388608 (+4194304)
> > > 4194304 (-4194304)
> > > 8388608 (+4194304)
> > > 4194304 (-4194304)
> > > 8388608 (+4194304)
> > > 4194304 (-4194304)
> > > etc
>
> > > The number in brackets shows the change in memory since the last reading.
>
> > > Alex.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to