Game Development Community

Tgea 1.7.0 Crash With D3derr_outofvideomemory

by Lee Spokes · in Torque Game Engine Advanced · 06/04/2008 (1:58 am) · 3 replies

Hi All,

First post here, so if I break any etiquette, please advise.

I have recently downloaded the TGEA 1.7.0 software and compiled it in VC 2005, fired up the stronghold game to find very poor performance. This happens on both my laptop and my desktop. When I hit F10 or F11 the software crashes with: -

Fatal: (c:\torque\tgea_1_7_0\engine\source\gfx\d3d9\gfxd3d9device.h @ 36) D3DERR_OUTOFVIDEOMEMORY
Out of video memory
GFXD3D9TextureManager::_createTexture - failed to create texture!
The thread 'Win32 Thread' (0x7d8) has exited with code 0 (0x0).

I am running a Toshiba laptop Tecra, which I have used successfully with TGE 1.5, albeit mainly using OpenGL. This laptop uses a NVIDIA GeForce Go 6200 TE 64M / 6600 TE 128M which appears to be recognised by the software.

"Initializing GFXCardProfiler (D3D9)
o Vendor : 'NVIDIA'
o Card : 'NVIDIA GeForce Go 6200 TE 64M / 6600 TE 128M '
o Version: '71.41'
- Scanning card capabilities...
- Loading card profiles...
- Loading card profile profile/D3D9.cs
- Loading card profile profile/D3D9.NVIDIA.cs
- No card profile profile/D3D9.NVIDIA.NVIDIAGeForceGo6200TE64M6600TE128M.cs exists
- No card profile profile/D3D9.NVIDIA.NVIDIAGeForceGo6200TE64M6600TE128M.7141.cs exists"

I have included a partial console.log for the above, in the hope that this may shed some light on the problem. Basically, I am wondering the following: -
1) Is anyone else seeing this problem on their video cards?
2) If so, is there a workaround or solution yet?
3) Is there a way of using OpenGL in 1.7.0, I have attempted to select it from options but it doesn't appear to change from DirectX

I have also checked the forums and as yet cannot see anything similar, so apologies if I have repeated a post on this.

Kind Regards,

Lee Spokes.


Input Init:
unknown0 input device created.
unknown1 input device created.
DirectInput enabled.

Done

Reading Display Device information...
Primary Display Device Found:
Vendor Id: VEN_0000
Device Id: DEV_0000
Executing c:/Torque/TGEA_1_7_0/GameExamples/Base/game/common/gameScripts/common.cs.
Executing c:/Torque/TGEA_1_7_0/GameExamples/Base/game/common/gameScripts/audio.cs.
Executing c:/Torque/TGEA_1_7_0/GameExamples/Base/game/common/gameScripts/canvas.cs.
Executing c:/Torque/TGEA_1_7_0/GameExamples/Base/game/common/gameScripts/cursor.cs.
Binding server port to default IP
UDP initialized on port 0
DirectX 9 version - 9.0.0 c
DirectX 8 version - 9.0.0 c
Attempting to create GFX device: NVIDIA GeForce Go 6200 TE 64M / 6600 TE 128M (D3D9)
Device created, setting adapter and enumerating modes
GFXD3D9Device - using 'd3dx9_37.dll' for dynamic linking.
Cur. D3DDevice ref count=1
Pix version detected: 3.000000
Vert version detected: 3.000000
Maximum number of simultaneous samplers: 8
Initializing GFXCardProfiler (D3D9)
o Vendor : 'NVIDIA'
o Card : 'NVIDIA GeForce Go 6200 TE 64M / 6600 TE 128M '
o Version: '71.41'
- Scanning card capabilities...
- Loading card profiles...
- Loading card profile profile/D3D9.cs
- Loading card profile profile/D3D9.NVIDIA.cs
- No card profile profile/D3D9.NVIDIA.NVIDIAGeForceGo6200TE64M6600TE128M.cs exists
- No card profile profile/D3D9.NVIDIA.NVIDIAGeForceGo6200TE64M6600TE128M.7141.cs exists
Executing c:/Torque/TGEA_1_7_0/GameExamples/Base/game/common/gui/profiles.cs.
Executing c:/Torque/TGEA_1_7_0/GameExamples/Base/game/common/gui/cursors.cs.
Executing c:/Torque/TGEA_1_7_0/GameExamples/Base/game/common/gui/remap.gui.
Texture Manager
- Approx. Available VRAM: 242221056
- Threshold VRAM: 67108864
- Quality mode: high
Win32Window::WindowProc - resetting device due to window size change.

#1
06/04/2008 (8:10 am)
Well, the error does mean you ran out of texture memory, which is unusual since you're reported as having 256mb of VRAM (although that number is an overall number including system memory usage - framebuffer).

With the design of the material system, most every texture is loaded at runtime, whether its used or not, so theres a potential for memory over usage even before you do much.

In a prefs.cs, should be in common or scriptsandassets...

If you don't see this option, $Pref::TextureManager::qualityMode , you can add it and set it to 1.. eg.

$Pref::TextureManager::qualityMode = "1";

This will kick your game into Low quality mode which will drop how much memory textures use up, then see if that makes a difference
#2
06/04/2008 (8:31 am)
You have a 64mb video card - you may also want to edit the mission file, and lower the resolution of the clipmap.

Look for the terrain block. If it has a "clipMapSizeLog2" value, change that to 9. If not, add one and make it a 9. like this:

clipMapSizeLog2 = "9";
#3
06/04/2008 (11:37 am)
Thanks for the fast response Jeremiah and Jaimi, really appreciate the help.

Firstly, i changed the TextureManager line, and it still crashed, but the game itself did seem to perform better.
Secondly, I changed the clipMapSizeLog2 to 9 and it worked! It was originally set to 10 by default it seems.
Changing this value down to 4 or 5 makes the game increasingly playable but as one would expect the detail range reduces.

Thanks again, I can now play around with the engine a little.

King Regards,

Lee Spokes.