Thread: [GD-Windows] Win98 lockup problem
Brought to you by:
vexxed72
From: Daniel V. <vo...@ep...> - 2003-12-09 19:28:29
|
I'm seeing a problem here where most though not all Win98/ME machines = will cause the system to lock up after trying to run another D3D app after = Unreal Tournament 2004 exits. The bug is on both ATI and NVIDIA and happens = with both DirectX 8.1 and 9.0b but doesn't happen with e.g. Unreal Tournament 2003. I tried running killhelp.exe (which no longer seems to be part of = the DirectX 9 SDK) without success - is it supposed to work on a machine = with DirectX 9.0b installed? What is interesting is that D3D apps will also = crash if I start the game with the OpenGL renderer but not if I pick the = software renderer. This means both the OpenGL and D3D renderer must do something = that leaves the machine in an unstable state though I can't figure out what. Remotely stepping through the code the app terminates (without a trace = and without locking up) in Direct3DCreate8 on second run with the D3D = renderer and locks in ChangeDisplaySettings with the OpenGL one. Anyone got any experience tracking down a problem like this? Luckily = Win2k was already around when I made the switch from Linux game development to Windows so I'm not too familiar with all the idiosyncrasies of Win98 :) -- Daniel, Epic Games Inc. |
From: Jon W. <hp...@mi...> - 2003-12-09 19:53:50
|
You can get remote (serial) debugging working using the RTERM.EXE executable and the DEBUGGER.EXE serial debugger nub on the target machine. More details in the Win98/ME DDK, which you can still get from Microsoft's DDK download site, although it's not supported. There has been one or two similar problems that I've actually gotten to the bottom of using these tools, but they're rather more frustrating to use than their NT equivalents (WinDBG and, on XP, FireWire remote debugging). What we've found is that automatic resource clean-up doesn't happen on Win98 the same way as it happens on WinXP. Terminating processes will not close file descriptors and release handles in a way that'll let the drivers clean up correctly. We've had to instruct our QA to reboot DOS-based Windows after they've seen one crash. We also had to track resources (handles, contexts, bitmaps, etc) in the program and clean all of them up in atexit() in order to be able to re-launch on DOS-based Windows. It really is a PITA. Cheers, / h+ -----Original Message----- From: gam...@li... [mailto:gam...@li...]On Behalf Of Daniel Vogel Sent: Tuesday, December 09, 2003 11:28 AM To: gam...@li... Subject: [GD-Windows] Win98 lockup problem I'm seeing a problem here where most though not all Win98/ME machines will cause the system to lock up after trying to run another D3D app after Unreal Tournament 2004 exits. The bug is on both ATI and NVIDIA and happens with both DirectX 8.1 and 9.0b but doesn't happen with e.g. Unreal Tournament 2003. I tried running killhelp.exe (which no longer seems to be part of the DirectX 9 SDK) without success - is it supposed to work on a machine with DirectX 9.0b installed? What is interesting is that D3D apps will also crash if I start the game with the OpenGL renderer but not if I pick the software renderer. This means both the OpenGL and D3D renderer must do something that leaves the machine in an unstable state though I can't figure out what. Remotely stepping through the code the app terminates (without a trace and without locking up) in Direct3DCreate8 on second run with the D3D renderer and locks in ChangeDisplaySettings with the OpenGL one. Anyone got any experience tracking down a problem like this? Luckily Win2k was already around when I made the switch from Linux game development to Windows so I'm not too familiar with all the idiosyncrasies of Win98 :) -- Daniel, Epic Games Inc. ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ Gamedevlists-windows mailing list Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows Archives: http://sourceforge.net/mailarchive/forum.php?forum_idU5 |
From: Antonio T. L. <wil...@te...> - 2003-12-09 19:58:02
|
Some OpenGL drivers are known to use DirectX for certain things, so don't rule out that the something in the DirectX runtime/driver is the only to blame for your problem. I believe Nvidia's OpenGL driver uses directdraw to lock the frontbuffer surface or something along those lines. On my TNT2 in Win98 there used to be a problem where the OpenGL driver was leaking some direct3d object, so the second time you'd run the OpenGL app it would fail to start ("ddhelp caused an invalid page fault..."), and the only solution was to launch a DirectX application (windows media player) *before* any OpenGL application (so the OpenGL driver wouldn't try to deinitialize DirectX at app's end, because it was already running when the app started). Did you try the OpenGL renderer on an ATI card as well? (I don't know if they use DirectX in their OpenGL driver :? ). Regarding debugging it, you could be lucky and it could be the DirectX runtime waiting for some unsignalled object, but if as you say the whole system locks up, I'm afraid you are stuck somewhere in the driver or kernel layers (I would bet some spinning loop in the DirectX kernel layer or the Win16 semaphore). I think that SoftIce is your only way to go (and tons of patience). > -----Original Message----- > From: gam...@li... > [mailto:gam...@li...] On Behalf Of > Daniel Vogel > Sent: Tuesday, December 09, 2003 11:28 AM > To: gam...@li... > Subject: [GD-Windows] Win98 lockup problem > > I'm seeing a problem here where most though not all Win98/ME machines will > cause the system to lock up after trying to run another D3D app after > Unreal > Tournament 2004 exits. The bug is on both ATI and NVIDIA and happens with > both DirectX 8.1 and 9.0b but doesn't happen with e.g. Unreal Tournament > 2003. I tried running killhelp.exe (which no longer seems to be part of > the > DirectX 9 SDK) without success - is it supposed to work on a machine with > DirectX 9.0b installed? What is interesting is that D3D apps will also > crash > if I start the game with the OpenGL renderer but not if I pick the > software > renderer. This means both the OpenGL and D3D renderer must do something > that > leaves the machine in an unstable state though I can't figure out what. > > Remotely stepping through the code the app terminates (without a trace and > without locking up) in Direct3DCreate8 on second run with the D3D renderer > and locks in ChangeDisplaySettings with the OpenGL one. > > Anyone got any experience tracking down a problem like this? Luckily Win2k > was already around when I made the switch from Linux game development to > Windows so I'm not too familiar with all the idiosyncrasies of Win98 :) > > -- Daniel, Epic Games Inc. > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > Gamedevlists-windows mailing list > Gam...@li... > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_idU5 |