Game Development Community

TGEA 1.0.3 Texture paging poor memory management

by Andy Hawkins · in Torque Game Engine Advanced · 04/17/2008 (7:50 am) · 6 replies

I did a memory test and when I load a single DIF it uses X amount of memory for the textures.

When I load a copy of that DIF which has the same textures mapped to it, it uses X times 2 memory for it.

When I load 3 DIF's it uses X times 3 memory for textures.

I know that DirectX used to only load one instance of a texture and ref that for future requests, it doesn't seem like TGEA is doing this.

It seems like TGEA is loading many copies of that same texture.

Can someone provide a fix for this please?

#1
04/18/2008 (10:18 am)
Anyone have any further information on this. We to have found afew issues with texture memory.


Thanks
#2
04/18/2008 (10:20 am)
Are you sure it's not just the lightmaps for the other instances?
#3
04/18/2008 (4:43 pm)
Well I ported to TGEA 1.7.0 which claims to handle texture memory properly so I have to assume it's my 4 LOD, 3Meg DIF that's not being instanced properly. This seems to be a scene management issue, so I need to come up with a better solution to handle a large city.

Unless of course, DIF's are not instanced properly in TGEA 1.7.0
#4
04/18/2008 (5:19 pm)
Yes I totally think it could be the light maps as they would be unique. Is there perhaps another way to do lightmaps so they use less memory?
#5
04/19/2008 (11:00 am)
Not really, unless you change the lighting resolution. Maybe there's some way to compress the LM's in memory that's not already being attempted?
#6
04/19/2008 (11:14 am)
Not sure, Andy, that with what you are going for (I assume you are running into this problem with London city in B.R.A.V.E.), lightmaps are a reasonable option. Seems that no matter what you do, you are going to end up with a massive amount of maps.

It may be worth thinking about not using DIFs at all and going for a dynamic lighting solution. For your purposes, you don't need the BSP and interior stuff, I suppose, so DTSs would fit in well.