pingus-devel
[Top][All Lists]
Advanced

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

Re: [Pingus-Devel] Memory consumption in pingus 0.7.2


From: usb
Subject: Re: [Pingus-Devel] Memory consumption in pingus 0.7.2
Date: Sun, 20 Jul 2008 12:23:19 +0200

Hi Ingo,

Thank you for the fast reply.
My comments are in the text

----- Original Message ----- From: "Ingo Ruhnke" <address@hidden>
To: <address@hidden>; <address@hidden>
Sent: Sunday, July 20, 2008 2:06 AM
Subject: Re: [Pingus-Devel] Memory consumption in pingus 0.7.2


On Sun, Jul 20, 2008 at 1:21 AM,  <address@hidden> wrote:
Maybe there is a bug in memry manager or something that does not free sdl
surfaces after they are used?

There were a handful of memory leaks that have been closed in the
meantime. So I suggest you try the latest SVN version to see if that
performs better.
==> I've got the latest version. src/ut8_iterator.hpp did not wanted to comiple beciuse of <stdint.h> include was missing. I've corrected that. Should I send you my file version? Unfortunately, svn version does not react on -g options. I changed def resultions back to 640*480 in globaps.hpp and pingus_main. Current version runs but kernel is out of memory on the first level already. So it this respect it's worse than prev version. I think it's because of high res level map. Is it possible to make the level map smaller? I tried to use level data from 0.7.2 but game complains on some files missing...

It would of course also be possible to reduce the memory usage of
Pingus further, there certainly is still quite a bit of room left.

Some things that come to mind:

* resource system got ripped out in the ClanLib->SDL switch and isn't
back yet, so some surfaces are keep in memory twice even so they are
identical (I'll fix that in the next days/weeks)

* collision map is keep in memory as one piece instead of as sparse
tiles, so we waste a bit of space (colmap consumes ~2MB for a
1920x1200 level)

* graphical level map is hold in memory twice (once in software and
once on the GPU) and hold as 32bit RGBA, this could certainly be
optimized for some systems, i.e. use 16bit or 24bit RGB + Colorkey,
share the GPU and software surfaces, since they are identical on some
platforms or don't keep them in software at all (levelmap takes around
10MB for a 1920x1200 level)
==> my system doe snot have any GPU. Only framebuffer. Does this means that level map is kept twice anyway? If yes, please let me know where to look for the second copy. I think if I free those 10 extra mb all will be fine and problems will be gone And is it possible to make the map smaller? My screen is 480x272x16pp and I run the game in 640*480 and scale the output to match the screen. What is --tile-size game parameter? is it possible to reduce memory consumption with it ? Ireied --tile-size 24 and it did not help...

* the whole screenstack is kept in memory, so the menu background and
such are kept in memory even when not visible
==> I do not think it's too much and I feel optimizing this will be a lot of pain. Probably it's easier to conventrate on double map storage cleanup...

--
WWW: http://pingus.seul.org/~grumbel/
Blog: http://grumbel.blogspot.com/
JabberID: xmpp:address@hidden
ICQ: 59461927






reply via email to

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