Game Development Community

Screen goes black, Vid card fan runs beyond hyper speed, +

by TheGasMan · in Torque 3D Professional · 10/21/2009 (2:57 am) · 47 replies

This has happened a few times(totaling 3) with T3D(2 times with version 1 and 1 time with version 1.0.1 ..all on the same system).

Notes:
I load the Burg level and turn on all post fx. I'll jump around and shoot my gun all willy-nilly..and normally, everything is fine with fluid FPS, but those few times: the screen has gone black, and my video card fan runs beyond hyper speed. The only way I can get my computer to respond is by forcefully shutting it down by the power button. The comp restarts without issue, yet I can't reproduce this problem on demand no matter what I try.

I was thinking that my video card may be faulty in some manner, but then I think to myself, why doesn't this happen all of the time.... Why doesn't this happen to me semi-frequently ?


Sure, this could be 1 of a million things...who knows really.
..Has anyone else has encountered this type of behavior ?

Quad 3 Ghz
4gb ram
GTX250 1gb XFX (latest drivers)
Vista SP2

#21
10/24/2009 (2:11 pm)
Windows XP SP3
Geforce 8800 GTS 640mb (latest drivers)
3 GB RAM
#22
10/24/2009 (2:19 pm)
@eb
do you see visual artefacts ?
flickering random pixels are due to overheating the video memory.
wrong geometry is due to overheating the gpu.

if not - there is nothing wrong with the video card

read this thread:
www.garagegames.com/community/forums/viewthread/102961
it is possible this is the same physics lockup.
#23
10/24/2009 (2:58 pm)
Alright Ive found out what is causing it for me. I spent about 45 minutes in the game just flying my aircraft around, not shooting just flying. As soon as I released hell with my weapons, thats when I got the lockup. Here is the callstack during this lockup:

>	Mach_DEBUG.dll!MatrixF::identity()  Line 296	C++
 	Mach_DEBUG.dll!QuatF::setMatrix(MatrixF * mat=0x086d7390)  Line 204	C++
 	Mach_DEBUG.dll!TSTransform::setMatrix(const QuatF & q={...}, const Point3F & p={...}, MatrixF * pDest=0x086d7390)  Line 83	C++
 	Mach_DEBUG.dll!TSShapeInstance::animateNodes(int ss=0)  Line 182 + 0x3c bytes	C++
 	Mach_DEBUG.dll!TSShapeInstance::animate(int dl=0)  Line 819	C++
 	Mach_DEBUG.dll!TSShapeInstance::animate()  Line 443 + 0x1e bytes	C++
 	Mach_DEBUG.dll!Turret::updateLookAnimation()  Line 261	C++
 	Mach_DEBUG.dll!Turret::processTick(const Move * move=0x0013c1ec)  Line 513	C++
 	Mach_DEBUG.dll!AITurret::processTick(const Move * move=0x00000000)  Line 410	C++
 	Mach_DEBUG.dll!ClientProcessList::onTickObject(ProcessObject * pobj=0x086d3164)  Line 252	C++
 	Mach_DEBUG.dll!ProcessList::advanceObjects()  Line 234	C++
 	Mach_DEBUG.dll!ClientProcessList::advanceObjects()  Line 265	C++
 	Mach_DEBUG.dll!ClientProcessList::onAdvanceObjects()  Line 207	C++
 	Mach_DEBUG.dll!ProcessList::advanceTime(unsigned int timeDelta=1024)  Line 202 + 0xd bytes	C++
 	Mach_DEBUG.dll!ClientProcessList::advanceTime(unsigned int timeDelta=1024)  Line 144 + 0xc bytes	C++
 	Mach_DEBUG.dll!clientProcess(unsigned int timeDelta=1024)  Line 178 + 0xe bytes	C++
 	Mach_DEBUG.dll!processTimeEvent(int elapsedTime=1024)  Line 130 + 0x9 bytes	C++
 	Mach_DEBUG.dll!fastdelegate::FastDelegate1<int,void>::InvokeStaticFunction(int p1=10371)  Line 1021 + 0xe bytes	C++
 	Mach_DEBUG.dll!fastdelegate::FastDelegate1<int,void>::operator()(int p1=10371)  Line 993 + 0x1a bytes	C++
 	Mach_DEBUG.dll!Signal<void __cdecl(int)>::trigger(int a=10371)  Line 323 + 0x17 bytes	C++
 	Mach_DEBUG.dll!Journal::Call<Signal<void __cdecl(int)>,int>(Signal<void __cdecl(int)> * obj=0x027d5858, void (int)* method=0x103fbc00, int a=10371)  Line 541 + 0xa8 bytes	C++
 	Mach_DEBUG.dll!JournaledSignal<void __cdecl(int)>::trigger(int a=10371)  Line 52 + 0x12 bytes	C++
 	Mach_DEBUG.dll!TimeManager::_updateTime()  Line 30	C++
 	Mach_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()()  Line 908 + 0x16 bytes	C++
 	Mach_DEBUG.dll!Signal<void __cdecl(void)>::trigger()  Line 312 + 0x13 bytes	C++
 	Mach_DEBUG.dll!Process::processEvents()  Line 62	C++
 	Mach_DEBUG.dll!StandardMainLoop::doMainLoop()  Line 549 + 0x5 bytes	C++
 	Mach_DEBUG.dll!torque_enginetick()  Line 78 + 0x5 bytes	C++
 	Mach_DEBUG.dll!TorqueMain(int argc=2, const char * * argv=0x00eb0e40)  Line 369 + 0x5 bytes	C++
 	Mach_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x00161f28, HINSTANCE__ * __formal=0x00000000)  Line 423 + 0x17 bytes	C++
 	Mach_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x00161f28, int nCommandShow=1)  Line 47 + 0x16 bytes	C++
 	Mach_DEBUG.exe!__tmainCRTStartup()  Line 263 + 0x2c bytes	C
 	Mach_DEBUG.exe!WinMainCRTStartup()  Line 182	C
 	kernel32.dll!7c817077() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]

Last line was 296 of mMatrix.h. So for me anyways, projectiles are causing it.
#24
10/24/2009 (3:23 pm)
Oh - not just any projectile it seems to be just projectiles that have particles at attached to them.

Edit- Just tried to go into T3D after this last lockup and I get an "out of video memory" error popup. I then tried to go into 3ds Max, "D3D failed to initialize". So there can only be 2 things happening, my video card is screwed, or T3D isnt dumping video memory properly.

www.ignitiongamespm.com/uploads/Adam/oovm.JPG
#25
10/24/2009 (3:37 pm)
something like this?


#26
10/24/2009 (3:39 pm)
I get that too sometimes, there arent always artifacts and crazy colours.
#27
10/25/2009 (10:00 am)
Wasn't able to reproduce it here.
Tried on those:
PC 1: Win7 x64 + C2Q Q9550 + 4GB DDR2 + Radeon HD 4870 1GB
PC 2: Win7 x64 / WinXP x86 + C2Q Q9550 + 8GB DDR 2+ GeForce 285 GTX 1GB
PC 3: WinXP x86 + C2D E8500 + 2GB DDR2 + GeForce 9800GT 1GB (+ 8800GTS 768MB)
PC 4: WinVista x86 + C2D P7350 + 4GB DDR2 + GeForce 9600M 768MB (Acer Aspire laptop)
#28
10/25/2009 (12:23 pm)
On the particle note:

I've found that the damn things devour performance since the days of TGE.

Bizarrely the Amount in Particle Editor -> basic is in reverse, higher numbers give less particles. Having a single emitter with a low (under 10) number easily grinds my old PC to a halt.

This is because in script Amount is actually ejectionPeriodMS.

@Deepscratch
That looks like a lot of particles...
#29
10/25/2009 (2:23 pm)
@Picasso: I am beyond convinced that my video card is 110% fine. The impulse setting of 2500(and the other settings mentioned in the link) are very questionable, but I have experienced these issues without any projectiles released.(1 time with the blank screen and hyper speed fan and I believe almost 33% of the time on the Freezing with the normal maps rendering on top(Adam's issue)). //edit: sorry that this reads awkward like, I just woke up for the day. ;)

@Steve: The particle system has always been a bit goofy, right?!

@Fyodor "bank": which problem were you trying to reproduce ? ..we've gone from 1 issue to nearly 5 issues. I am thinking you replied to DeepScratch's post.. but I would just like to be sure.

@Adam: Thx for posting that screenshot on page 1.

@Joshua...I used an "IF" clause in the lying comment. Please read my posts at verbatim. If you do that, then you should never see an issue with anything I say. I know many people in this site "read-into" things...and believe me, I know my words should never be "read into", because at that point, words become open to perception and interpretation..which is not usually a good thing. If that happens then I have to deal with peoples' emotions and 'how they feel about my approach to the scenario' and 'the influence their psyche places onto my words' and, well, it just gets messy. So people, always read me at Verbatim. Thanks. ;)

#30
10/25/2009 (3:31 pm)
@eb: jumping/running/shooting on Burg level with constant firing (have set ammo to infinite). 5-10 minutes on each PC doesn't caused anything.

#31
10/25/2009 (4:17 pm)
thx for testing that Fyodor..as I know that time is valuable. I do have to reiterate how random the "blackout" issue can be *even if* it is reproducible on other systems.

As for the issue that Adam and I are experiencing from time to time, that is definitely not a local issue. ..As I have said I plan to run tests when time allows. Hopefully I can find something.
#32
10/25/2009 (5:37 pm)
update: Torque crashed on me, in Burg, just running/firing for 2 minutes.
Good thing, it happen on my main dev PC. Will try to replicate that in Debug build.

Edit: Debug doesn't want to crash no matter what I do.
However I've found that during those "lockups", the GPU Load drops to zero, so, I think it means that engine doesn't send anything to process for video.
Temperature and coolers doesn't change (60C at 50%/1135RMP, HD4870) during whole session including "hangs".
I've just made a T3D with minidump support, so I if it crash in Release, at least I (hopefully) should be able catch where it will crash.

Edit2:
Weird. I've setup a simple script to run/shoot constantly and left if for 9 hours running on my PC. Stats: 800 respawns, about 250000 projectiles were fired. No crash. Though, sometimes it hangs for a second and two seconds. Usually at respawning.
#33
10/26/2009 (2:52 pm)
..you are the man. Would you mind passing along those files so that I can run them overnight ?
#34
10/26/2009 (7:19 pm)
Sure and sorry for delay, I was "a bit busy".
First, go to:
art/datablocks/weapons/
and in both files (grenadeLauncher.cs and rocketLauncher.cs)
find/replace:
maxInventory = 20;
to
maxInventory = 10000;
Than, in art/datablocks/player.cs
change:
// Allowable Inventory Items
   maxInv[RocketLauncher] = 1;
   maxInv[RocketLauncherAmmo] = 20;
   maxInv[GrenadeLauncher] = 1;
   maxInv[GrenadeLauncherAmmo] = 20;
to:
// Allowable Inventory Items
   maxInv[RocketLauncher] = 1;
   maxInv[RocketLauncherAmmo] = 10000;
   maxInv[GrenadeLauncher] = 1;
   maxInv[GrenadeLauncherAmmo] = 10000;
so you spawn with 10k of ammo for every weapon.
Now, paste somewhere (I've put it in scripts/client/client.cs):
function recc()
{
   exec("scripts/client/client.cs");
}
function startTheShoot()
{
   $ok = 1;
   continueTheShoot();
}
function stopTheShoot()
{
   $ok = 0;
   if($mvTriggerCount0 % 2 != 0) $mvTriggerCount0++;
   if($mvTriggerCount1 % 2 != 0) $mvTriggerCount1++;
   if($mvTriggerCount2 % 2 != 0) $mvTriggerCount2++;
   cancel($continueDeShoot);
}
function continueTheShoot()
{
   cancel($continueDeShoot);
   if(!$ok)
      return;
   $continueDeShoot = schedule(250, 0, continueTheShoot);
   if(getRandom(0,2)==0)
   {
      if(getRandom(0,1)==0)
         $mvYaw += 1;
      else
         $mvYaw -= 1;
   }
   if(getRandom(0,2)==0)
   {
      if(getRandom(0,1)==0)
         $mvPitch += 0.1;
      else
         $mvPitch -= 0.1;
   }
   $mvTriggerCount0++;
   if(getRandom(0,2)==0)
      $mvTriggerCount1++;
   if(getRandom(0,2)==0)
      $mvTriggerCount2++;
   if(getRandom(0,5)==0)
   {
      if(getRandom(0,1)==0)
         mouseWheelWeaponCycle(1);
      else
         mouseWheelWeaponCycle(-1);
   }
   if(getWord(ServerConnection.getControlObject().getTransform(),2) < 0)
      commandToServer('suicide');
   echo($tmpcnt SPC "Current sim time:" SPC getSimTime());
   $tmpcnt++;
}
Start the game, load Burg and type in console:
startTheShoot();
You can stop it by calling:
stopTheShoot();
#35
10/26/2009 (7:22 pm)
You can also do the following:
Change the stateTimeoutValue[5] for both weapons like that:
// Play the reload animation, and transition into
   stateName[5] = "Reload";
   stateTransitionOnTimeout[5] = "Ready";
   stateTimeoutValue[5] = 0.3;
So it will shoot with higher freq..
Once I had about 20 grenades blowing up at the same time without any issues, that stuff looks great!
#36
10/26/2009 (9:59 pm)
I was mainly talking about the minidump exe. No worries, I can make something to test overnights. thx
#37
10/31/2009 (12:54 pm)
I have run tests for a few nights and I can't get the screen to go black and the fan to run high again. I hope that is a local issue. Seriously.

..there is still the crash issue from projectiles and the issue of freezing while rendering the normal maps as diffuse.

Anyone have any insight on those issues ?
#38
11/09/2009 (11:54 am)
With mobai or universal ai, If I have more than a few characters on screen and fire rocketlauncher, "sometimes" t3d freezes, I have to kill it from task manager. I can have 50 ai chasing me with no problems, it happens only if I fire. On a Q9550, gtx285, windowsxp3
#39
11/09/2009 (12:33 pm)
@penbit
Just for the sake of it, try changing
scripts/client/prefs.cs
$pref::Net::PacketRateToClient = "10";
$pref::Net::PacketRateToServer = "32";
$pref::Net::PacketSize = "200";

//change to

$pref::Net::PacketRateToClient = "32";
$pref::Net::PacketRateToServer = "32";
$pref::Net::PacketSize = "450";

If it doesn't make any difference feel free to change it back.
#40
11/09/2009 (12:40 pm)
Thanks Steve, will try tonight and report back.

Edit: Ok, it looks like by those changes I was able to fire more rounds without freeze but it eventually engine hung up on me. It doesn't look like it is somehow performance related, sure there are unnecessary number of ai going on screen but just before the freeze, the fps is very normal in different cases/areas