[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Thread Index]
[Monthly Archives] [List Home]

RE: [Virtools] Performance drop when textures come into view for the first time



Yes, texture compression takes some time.
But the compression takes place after loading the scene (as far as I can tell).
And my problem is the freeze-ups during gameplay.
I have no problem with increased 'loading time'.

The video ram IS cleared when the scene is restarted.
Check the profiler, the video/textures memory count starts at a certain value and increases as
more textures have come into view.
When I reset the scene, the number jumps back to the initial value (and my lags return).

Thanks for the code snippet :)

CU, Patrick

15-Jan-02 14:24:54, "Arnaud Muthelet" <arnaud@simteam.com> wrote:

>Texture compression decrease amount of data to transfer, so 3d runs
>faster.. BUT you have to compress textures before putting them into
>video memory, so the init (compression) takes some time.
>
>Concerning textures, what i suggest is that you should always work with
>pow2 textures using non-compressed DISK file format, so that you can
>easily predict the amount of memory that will be used in your app, just
>by looking at the size of your texture directory. For instance, .jpeg is
>small on your disk, but in the video memory it takes as much size as
>.bmp .. (Be carefull of the difference between VIDEO compression (DXT)
>and DISK compression (jpeg))
>
>As far as i know, i don't really think the video memory is cleaned
>between 2 resets, so i don't understand why you have delays after one
>reset. Maybe you have more textures than video memory, so that anyway it
>can't all fit in ? Have a look at the Virtools profiler once you have
>ALL your scene visible : the amount of texture is showed (and be
>carefull you have to take front/back/z-buffers into consideration in
>your memory calculation)
>
>To loop through all your textures, create a group of all the textures
>and then do something like that :
>	CKGroup *textureGroup;
>	textureGroup = (CKGroup *)beh->GetInputParameterObject( 0 );
>
>	// loop the group
>	for( int noObj = 0; noObj < textureGroup->GetObjectCount();
>noObj++ )
>	{
>		CKTexture *currentTexture = (CKTexture
>*)textureGroup->GetObject( noObj );
>		currentTexture->SystemToVideoMemory(
>behcontext.CurrentRenderContext, FALSE);
>	}
>Arnaud
>
>> -----Original Message-----
>> From: owner-virtools-user-group@lists.theswapmeet.com 
>> [mailto:owner-virtools-user-group@lists.theswapmeet.com] On 
>> Behalf Of Patrick Hogenboom
>> Sent: mardi 15 janvier 2002 13:39
>> To: 'Virtools-User-Group'
>> Subject: RE: [Virtools] Performance drop when textures come 
>> into view for the first time
>> 
>> 
>> Hi Arnoud,
>> thanks very for pointing out the SystemToVideoMemory call :)
>> 
>> About texture compression, are you sure it causes delay ?
>> I just put texture compression on my biggest maps and have 
>> noticed a speed increase. Ok, I also resized the textures to 
>> a power of 2 (maybe that outweighed the compression 
>> performance hit) This made a real impact as virtools upscaled 
>> them to the nearest power of 2, causing the memory footprint 
>> to soar ! Maybe there should be a preferences setting to 
>> scale non-pow-2 textures up or down.
>> 
>> Is there any way of preventing the need for re-uploading the 
>> textures after a reset ?
>> 
>> Just one little question :
>> How do I set up a loop that iterates through all textures ?
>> 
>> Thanks, Patrick
>> 
>> 15-Jan-02 11:10:57, "Arnaud Muthelet" <arnaud@simteam.com> wrote:
>> 
>> >Hi patrick,
>> >
>> >The delay is due to system to video bitmap data transfer. 
>> The more the 
>> >data, the longer the delay. Delay grows even longer while 
>> using texture 
>> >dynamic compression (DXT). To fix that, you should loop on all the 
>> >textures of your scene using the function 
>> >CKTexture::SystemToVideoMemory(), at the beginning of your scene. It 
>> >will take a few moment, but no more delay after (given the fact that 
>> >ALL textures loaded fit in your video memory of course ) Arnaud.
>> >
>> >> Hi all,
>> >> first of all, let me wish you a fun and productive 2002 :D ! 
>> >> May it bring what you wish / dream for.
>> >> 
>> >> I'm having performance trouble when textures come into view
>> >> for the first time after I reset / load a world. What I mean 
>> >> is this : _I load a cmo file _rotate the camera _the 
>> >> performance drops when ever I encounter new objects/textures
>> >>   the bigger the texture, the bigger the performance drop. 
>> >> _after I have completed the full 360 degrees, there is no 
>> >> more performance drops
>> >>   Unfortunately, when I reset the scene, the problem comes back !
>> >> 
>> >> I think that the performance drop is some kind of AGP
>> >> swapping / texture uploading to video ram. But that it comes 
>> >> back when I reset the scene, just doesn't make sense.....
>> >> 
>> >> On fast machines the performance just dips, but on low-spec
>> >> machines, the whole application freezes quite some time... 
>> >> I've seen this under Dev, the standalone player and the webplayer.
>> >> 
>> >> My questions are these :
>> >> _Does anybody have more knowledge or an explanation of this
>> >> phenomenon ? _Why does it recur when I reset the world ? _Can 
>> >> I pre-upload all textures to video ram ?
>> >>   That way the caching time gets added to the loading time 
>> >> and it doesn't interfere with the user's experience. _Can I 
>> >> prevent the clearing of the cache, so that resetting doesn't 
>> >> recur the problem ?
>> >> 
>> >> Thanks in advance, Patrick
>> >> 
>> >> ...............................................................
>> >> Distributed via the virtools-user-group list:
>> >> http://www.theswapmeet.com/numl.html
>> >> To reply to the list 
>> >> instead of its author, use "Reply to All" To unsubscribe: 
>> >> send "unsubscribe virtools-user-group" to 
>> >> Majordomo@lists.theswapmeet.com To subscribe: send "subscribe 
>> >> virtools-user-group" to Majordomo@lists.theswapmeet.com To 
>> >> post a message: send it to 
>> virtools-user-group@lists.theswapmeet.com
>> >> ...............................................................
>> >> 
>> >
>> >...............................................................
>> >Distributed via the virtools-user-group list: 
>> >http://www.theswapmeet.com/numl.html
>> >To reply to the list instead of its author, use "Reply to All"
>> >To unsubscribe: send "unsubscribe virtools-user-group" to 
>> Majordomo@lists.theswapmeet.com
>> >To subscribe: send "subscribe virtools-user-group" to 
>> Majordomo@lists.theswapmeet.com
>> >To post a message: send it to 
>> virtools-user-group@lists.theswapmeet.com
>> >...............................................................
>> >
>> >
>> 
>> 
>> 
>> ...............................................................
>> Distributed via the virtools-user-group list: 
>> http://www.theswapmeet.com/numl.html
>> To reply to the list 
>> instead of its author, use "Reply to All" To unsubscribe: 
>> send "unsubscribe virtools-user-group" to 
>> Majordomo@lists.theswapmeet.com To subscribe: send "subscribe 
>> virtools-user-group" to Majordomo@lists.theswapmeet.com To 
>> post a message: send it to virtools-user-group@lists.theswapmeet.com
>> ...............................................................
>> 
>
>...............................................................
>Distributed via the virtools-user-group list: http://www.theswapmeet.com/numl.html
>To reply to the list instead of its author, use "Reply to All"
>To unsubscribe: send "unsubscribe virtools-user-group" to Majordomo@lists.theswapmeet.com
>To subscribe: send "subscribe virtools-user-group" to Majordomo@lists.theswapmeet.com
>To post a message: send it to virtools-user-group@lists.theswapmeet.com
>...............................................................
>
>



...............................................................
Distributed via the virtools-user-group list: http://www.theswapmeet.com/numl.html
To reply to the list instead of its author, use "Reply to All"
To unsubscribe: send "unsubscribe virtools-user-group" to Majordomo@lists.theswapmeet.com
To subscribe: send "subscribe virtools-user-group" to Majordomo@lists.theswapmeet.com
To post a message: send it to virtools-user-group@lists.theswapmeet.com
...............................................................