GPU locks up when moving camera around Particles - RESOLVED
by Aun Taraseina · in Torque 3D Professional · 10/30/2009 (4:58 am) · 12 replies
Ok just Tested with Stock T3D 1.0.0 and 1.0.1 both have the same issues and locks up.
Here's the scenario,
The game I'm working on, the player will be moving on the water surface which the player will have 3 different types of splashEmitters (splashEmitter[0] - splashEmitter[2]). For some reason, if the player starts moving (splash emitters start rendering) and you move the camera around the player to see those splashes at a different angle. The GPU will lock up and my dual monitor will flicker in black but system still play other sounds. The game itself would sometime throw a D3DERR_NOTAVAILABLE error with either "Unable to lock vertex buffer" or "Failed to allocate VB" description but most of the time it would just locks up and forces me to press the restart button. If I get lucky and able to stop the process from Visual Studio, the game won't be able to start again with an error "Not enough GPU memory" (or at least something like that). While I did do a lot of engine modification, I'm sure I change nothing with the shader or particle stuff, most of the changes I did was with the Gui control resizing stuff and physics.
So in conclusion,
- Symptom : GPU locks up when rotating the camera around the particles. Only happens when there are splash particles in the scene. The splash particles are a direct copy and paste from TGEA.
- Error : D3DERR_NOTAVAILABLE or not enough GPU memory
- I wish I had some kind of call stack to trace this but I don't :(
- my assumption : Memory Leak some where in the GFX ?
I've been putting break points and printing out a lot of text to the console and still can't find what's causing this. Any hint or some kind of advice on this would be much appreciated.
Here's the scenario,
The game I'm working on, the player will be moving on the water surface which the player will have 3 different types of splashEmitters (splashEmitter[0] - splashEmitter[2]). For some reason, if the player starts moving (splash emitters start rendering) and you move the camera around the player to see those splashes at a different angle. The GPU will lock up and my dual monitor will flicker in black but system still play other sounds. The game itself would sometime throw a D3DERR_NOTAVAILABLE error with either "Unable to lock vertex buffer" or "Failed to allocate VB" description but most of the time it would just locks up and forces me to press the restart button. If I get lucky and able to stop the process from Visual Studio, the game won't be able to start again with an error "Not enough GPU memory" (or at least something like that). While I did do a lot of engine modification, I'm sure I change nothing with the shader or particle stuff, most of the changes I did was with the Gui control resizing stuff and physics.
So in conclusion,
- Symptom : GPU locks up when rotating the camera around the particles. Only happens when there are splash particles in the scene. The splash particles are a direct copy and paste from TGEA.
- Error : D3DERR_NOTAVAILABLE or not enough GPU memory
- I wish I had some kind of call stack to trace this but I don't :(
- my assumption : Memory Leak some where in the GFX ?
I've been putting break points and printing out a lot of text to the console and still can't find what's causing this. Any hint or some kind of advice on this would be much appreciated.
About the author
COO for Kiragames, developer of Unblock Me. With over 60 million downloads and named #17 most download Application of all time. My work is to extend our IP to higher ground and find ways we can work with other awesome companies.
Recent Threads
#2
Is this happening in 1.1 Alpha, too?
This indeed sounds like there is a massive leak of GFX resources somewhere in there.
If you can pause the process when it goes wild, one thing to try would be to dump the current GFX resources with the listGFXResources or (better yet) the describeGFXResources function and see if there's something fishy. Dumping some time before and then after may also be insightful.
Needs to be looked into. THREED-828.
12/06/2009 (9:07 am)
Is this happening in 1.1 Alpha, too?
This indeed sounds like there is a massive leak of GFX resources somewhere in there.
If you can pause the process when it goes wild, one thing to try would be to dump the current GFX resources with the listGFXResources or (better yet) the describeGFXResources function and see if there's something fishy. Dumping some time before and then after may also be insightful.
Needs to be looked into. THREED-828.
#3
It seems it may be a hardware specific issue.
I made a post about this as well, and in there you can see at least a few of the more basic specs.
http://www.torquepowered.com/community/forums/viewthread/107055
I also see from Adam Beer that his laptop is not crashing, but his desktop is.
What are your computer specs, to see if we are using a similar setup?
Edit: to add I've currently been implementing non particle based mechanics in a particle free level to get around it.
12/07/2009 (11:20 pm)
I've been having this issue, but noticed it's not happening on both computers. It seems it may be a hardware specific issue.
I made a post about this as well, and in there you can see at least a few of the more basic specs.
http://www.torquepowered.com/community/forums/viewthread/107055
I also see from Adam Beer that his laptop is not crashing, but his desktop is.
What are your computer specs, to see if we are using a similar setup?
Edit: to add I've currently been implementing non particle based mechanics in a particle free level to get around it.
#4
One thing I notice is that, any particles that are a direct copy from TGEA are more likely to have this issue. So I think it's some variables in the particle datablocks.
@ Rapid Fire T, My specs are
GPU : 250 GTS nvidia
CPU : E8400, 3.0 Ghz
Ram : ~ 3.5 G
OS : Window xp 32
12/07/2009 (11:40 pm)
@ Rene, thanks for taking a look at this. Once T3D locks up I'm unable to do anything. I can't pause the process, I can't press any command or buttons. It completely locks up, that's why I can't trace it at all.One thing I notice is that, any particles that are a direct copy from TGEA are more likely to have this issue. So I think it's some variables in the particle datablocks.
@ Rapid Fire T, My specs are
GPU : 250 GTS nvidia
CPU : E8400, 3.0 Ghz
Ram : ~ 3.5 G
OS : Window xp 32
#5
04/07/2010 (1:06 pm)
During some conversions Sean Rice and I were able to verify a problem with TGEA particles causing problems in T3d. Removing the particles fixed our crashes.
#6
04/08/2010 (3:25 pm)
This sounds a lot like the vertex format in the particles vertex buffer is not the same as the format used in the particles temporary buffer.
#7
04/09/2010 (5:28 am)
I was having this problem too (or at least the same symptoms). Disabling the "use occlusion query" field in the water block fixed the issue for me as I recall--there was a thread on it somewhere. After that I had no problems with particles.
#8
This bug is disturbing me for quite a few time.
I never saw this on the Ati cards,but the NV ones were a real problem.
04/09/2010 (10:00 am)
Good to know!This bug is disturbing me for quite a few time.
I never saw this on the Ati cards,but the NV ones were a real problem.
#9
04/10/2010 (12:30 pm)
particle issue still exists for me on both nvidia desktop and ati laptop.
#10
04/10/2010 (5:21 pm)
Didn't fix my issue either but thanks for the help Matt.
#12
04/13/2011 (5:18 pm)
Fixed in 1.1 Final and Preview.
Torque Owner Adam Beer
Ignition Games Inc.