TGEA Is Still Very Slow For Me
by William Lee Sims · in Torque Game Engine Advanced · 02/11/2009 (11:07 pm) · 15 replies
Running the Stronghold demo, I get about 12 FPS. If I move away from the buildings, Kork, and the water, and I just look at the terrain, I get about 13 FPS. If I look into the sky, I get about 90 FPS.
This is true whether I run at 800x600 or 1600x1200.
In the Atlas Demo, I get between 30 and 70 FPS. In the Forge Demo, I get about 130 FPS.
I have:
* Intel Core 2 6600 at 2.4 GHz
* 2 GB RAM
* NVIDIA GeForce 8800 GTS
Checking the Windows Task Manager, the game is only taking up 50% of the CPU, which leads me to believe that my video card is the hold-up.
I have the November SDK for Direct X (got the latest before learning there are some unspecified issues) and I just got the latest drivers for my video card about an hour ago and re-ran my test.
This is true whether I run at 800x600 or 1600x1200.
In the Atlas Demo, I get between 30 and 70 FPS. In the Forge Demo, I get about 130 FPS.
I have:
* Intel Core 2 6600 at 2.4 GHz
* 2 GB RAM
* NVIDIA GeForce 8800 GTS
Checking the Windows Task Manager, the game is only taking up 50% of the CPU, which leads me to believe that my video card is the hold-up.
I have the November SDK for Direct X (got the latest before learning there are some unspecified issues) and I just got the latest drivers for my video card about an hour ago and re-ran my test.
About the author
#2
profilerenable(1);
then play the game for a while and when finished:
profilerdump();
the results will show you where the game is spending most of its time.
02/12/2009 (1:06 am)
That does seem very low... you should put some profiler tracing on, basically start the game open up the console and type:profilerenable(1);
then play the game for a while and when finished:
profilerdump();
the results will show you where the game is spending most of its time.
#3
Also, I believe it is recommended to use the August release of the SDK, as there were/are problems with the November release. However, if you are using the prebuilt executable then I don't think it would make a difference.
02/12/2009 (3:47 am)
You might also try checking your nVidia Control Panel, and under the 3D Settings->Adjust image settings with preview make sure it is set to Let the 3D application decide. I had been messing with my nVidia control panel and had it hard set to Quality and found myself VERY disappointed with TGEA 1.8.1's performance.. until I remember I had changed that setting. Now, the performance is outstanding.Also, I believe it is recommended to use the August release of the SDK, as there were/are problems with the November release. However, if you are using the prebuilt executable then I don't think it would make a difference.
#4
02/12/2009 (6:00 am)
Also - please post your console.log, so we can see the particulars about your video card, mode, etc.
#5
02/12/2009 (6:17 am)
That system is identical to the system i'm using here (same cpu, same card, same ram) and in the same resolution I get about 70 fps when looking at the buildings, about 160 when looking away and over 400 when looking at the sky. I'd guess it has to be something with your local settings or drivers most likely.
#6
I've run the game at 800x600 to 1600x1200, fullscreen and windowed. The framerates are almost identical. My nVidia Control Panel has the settings set for the 3D application to decide quality (which is obvious at 800x600 fullscreen... eeks to the jaggies!).
Like I mentioned before, I'm not seeing any real problems on the Forge or Atlas Demos.
I ran the profiler, which has some very interesting rusults. I will post that in the next message, along with the start of the console listing my machine "settings".
02/12/2009 (1:53 pm)
While I can't rule out a problem on my computer, I'm beginning to think this is due to Legacy Terrain.I've run the game at 800x600 to 1600x1200, fullscreen and windowed. The framerates are almost identical. My nVidia Control Panel has the settings set for the 3D application to decide quality (which is obvious at 800x600 fullscreen... eeks to the jaggies!).
Like I mentioned before, I'm not seeing any real problems on the Forge or Atlas Demos.
I ran the profiler, which has some very interesting rusults. I will post that in the next message, along with the start of the console listing my machine "settings".
#7
02/12/2009 (1:55 pm)
CONSOLE INIT://-------------------------- 2/12/2009 -- 14:44:59 -----
Processor Init:
Intel Core 2, ~2.40 Ghz
(timed at roughly 2.39 Ghz)
FPU detected
MMX detected
SSE detected
Math Init:
Installing Standard C extensions
Installing Assembly extensions
Installing FPU extensions
Installing MMX extensions
Installing SSE extensions
Initializing platform...
Input Init:
keyboard0 input device created.
mouse0 input device created.
DirectInput enabled.
Done
--------- Loading DIRS ---------
--------- Parsing Arguments ---------
Reading Display Device information...
Primary Display Device Found:
Vendor Id: VEN_10DE
Device Id: DEV_0193
Binding server port to default IP
UDP initialized on port 0
DirectX 8 version - 9.0c
DirectX 9 version - 9.0c
GLExtensions: Extension bind failed for glBufferRegionEnabledEXT
GLExtensions: Extension bind failed for glNewBufferRegionEXT
GLExtensions: Extension bind failed for glDeleteBufferRegionEXT
GLExtensions: Extension bind failed for glReadBufferRegionEXT
GLExtensions: Extension bind failed for glDrawBufferRegionEXT
GLExtensions: Extension bind failed for glVertexWeighthNV
GLExtensions: Extension bind failed for glVertexWeighthvNV
Attempting to create GFX device: NVIDIA GeForce 8800 GTS (D3D9)
GFXD3D9EnumTranslate: Unassigned value in GFXD3D9TextureFormat: 11
Device created, setting adapter and enumerating modes
GFXD3D9Device - using 'd3dx9_38.dll' for dynamic linking.
Cur. D3DDevice ref count=1
Maximum number of simultaneous samplers: 8
Pix version detected: 3.000000
Vert version detected: 3.000000
WMIVideoInfo: DxDiag initialized
Initializing GFXCardProfiler (D3D9)
o Chipset : 'GeForce 8800 GTS'
o Card : 'GeForce 8800 GTS'
o Version : '6.14.0011.8122'
- Scanning card capabilities...
GFXCardProfiler (D3D9) - Setting capability 'autoMipMapLevel' to 1.
GFXCardProfiler (D3D9) - Setting capability 'maxTextureWidth' to 8192.
GFXCardProfiler (D3D9) - Setting capability 'maxTextureHeight' to 8192.
GFXCardProfiler (D3D9) - Setting capability 'maxTextureSize' to 8192.
GFXCardProfiler (D3D9) - Setting capability 'lerpDetailBlend' to 1.
GFXCardProfiler (D3D9) - Setting capability 'fourStageDetailBlend' to 1.
GFXCardProfiler (D3D9) - Setting capability 'allowRGB24BitTextures' to 0.
- Loading card profiles...
- Loaded card profile profile/D3D9.cs
- No card profile profile/D3D9.GeForce8800GTS.cs exists
- No card profile profile/D3D9.GeForce8800GTS.GeForce8800GTS.cs exists
- No card profile profile/D3D9.GeForce8800GTS.GeForce8800GTS.61400118122.cs exists
% - Initialized Common
--------- Initializing Directory: scriptsAndAssets ---------
sfxStartup...
SFXSystem::createDevice - created XAudio device 'SigmaTel Audio'
Provider: XAudio
Device: SigmaTel Audio
Hardware: No
Buffers: 16
--------- Initializing Stronghold: Server Scripts ---------
--------- Initializing Stronghold: Client Scripts ---------
--------------
Attempting to set resolution to "800 600 false 32 60 0"
Accepted Mode:
--Resolution : 800 600
--Full Screen : No
--Bits Per Pixel : 32
--Refresh Rate : 60
--FSAA Level 0
#8
02/12/2009 (1:59 pm)
TOPS OF PROFILE DUMP SECTIONS==>profilerDump(); Profiler Data Dump: Ordered by non-sub total time - %NSTime % Time Invoke # Name 84.964 84.964 100715 GFXDevice_updateStates 2.492 2.761 954234 TerrainRender_renderChunkNormal 1.455 2.591 2800 RenderMeshMgr_render 1.299 1.597 700 TerrainRenderRecurse 0.889 1.223 9694 GFXDevice_drawTextN 0.615 79.175 3441 TerrainRender_DrawDiffusePass 0.565 0.652 110547 GFXD3D9ShaderConstBuffer_activate 0.520 0.729 700 SkyRender 0.508 0.508 4795 Terrain_bufferCopy_lockV 0.437 98.295 350 CanvasRenderControls 0.392 99.771 350 MainLoop 0.347 0.869 4795 Terrain_vbufferCopy 0.322 0.322 4795 Terrain_bufferCopy_lockP 0.270 0.323 700 PrecipRender 0.269 0.269 1001927 TR_fixEdge 0.252 2.084 700 TerrainRender_DrawFogPass 0.226 0.336 1704 PrecipProcess 0.212 2.137 959075 Terrain_batchEnd 0.211 0.391 700 RenderTranslucentMgr_render 0.199 0.536 4795 TRender_DIP 0.197 0.197 1419863 GFont_getCharInfo 0.178 0.178 476931 ClipMap_calculateClipMapLevels 0.176 0.176 350 SwapBuffers 0.171 0.276 9625 convertUTF8toUTF16 0.151 0.262 7009 TSShapeInstanceRender 0.140 0.140 397371 GenericConstBufferLayout_set 0.131 92.087 4900 RenderObjectMgr_render 0.121 0.121 13754 ContainerCastRay 0.120 0.120 458874 TerrainRender_testSquareVisibility 0.116 0.116 702 Swizzle32_Upload
#9
02/12/2009 (2:00 pm)
Ordered by stack trace total time - % Time % NSTime Invoke # Name 1.453 -98.318 0 ROOT 99.771 0.392 350 MainLoop 98.295 0.437 350 CanvasRenderControls 49.883 0.001 350 GameRenderWorld 49.879 0.009 350 SceneGraphRender 49.193 0.001 350 TraverseScene 49.192 0.002 350 RenderCurrentImages 49.154 0.001 350 RenderInstManagerRender 49.153 0.008 350 RenderPassManager_render 47.210 0.093 2450 RenderObjectMgr_render 46.315 0.001 350 TerrainRender 45.402 0.009 350 TerrainRenderEmit 40.282 0.188 1750 TerrainRender_DrawDiffusePass 38.466 38.466 3500 GFXDevice_updateStates 0.940 0.795 242413 TerrainRender_renderChunkNormal
#10
02/12/2009 (2:06 pm)
Quote: 84.964 84.964 100715 GFXDevice_updateStatesThat is, beyond a doubt, utterly inexplicable. The update states call should be, essentially, free. The fact that it is not indicates that there is something going very very wrong in your d3d9.dll or in the actual driver.
#11
Alex, your comment made me run "dxdiag". It immediately flagged the d3d9.dll... BECAUSE I WAS RUNNING THE DEBUG VERSON! As soon as I put that back to the runtime version, everything ran Very Fast And Very Smooth!
(I'm not blaming GG, but it was their documentation that told me to use the debug version. HEHE!)
02/12/2009 (4:47 pm)
To everybody: Thanks for your support, but I'm sorry that I wasted your time.Alex, your comment made me run "dxdiag". It immediately flagged the d3d9.dll... BECAUSE I WAS RUNNING THE DEBUG VERSON! As soon as I put that back to the runtime version, everything ran Very Fast And Very Smooth!
(I'm not blaming GG, but it was their documentation that told me to use the debug version. HEHE!)
#12
02/12/2009 (4:51 pm)
@William - Can you post a link to that line in the docs. I'd like to correct it.
#13
TGEA181/documentation/Documentation%20Overview.html
There is a section under "Getting Started" called "Run Debug Libs". It suggests that you run the debug version of the DirectX library. I wouldn't mind it being in a different section, though (you know, like "How to Make Your Machine Chug By Using DirectX Debug Libraries" *GRIN*).
Sorry... I'm easily entertained.
02/12/2009 (6:19 pm)
It's in the documentation that comes with the engine, as inTGEA181/documentation/Documentation%20Overview.html
There is a section under "Getting Started" called "Run Debug Libs". It suggests that you run the debug version of the DirectX library. I wouldn't mind it being in a different section, though (you know, like "How to Make Your Machine Chug By Using DirectX Debug Libraries" *GRIN*).
Sorry... I'm easily entertained.
#14
Pretty clear about why you do that and what will be the results. Should I remove the word *slightly*??
02/12/2009 (6:56 pm)
Quote:Using these settings will slightly degrade your rendering performance, but the debug information it provides in your IDE output window makes it well worth it when you are programming D3D graphics or writing your own shaders.
As you can see from the dialog, you can switch it back to use the Retail D3D libraries very easily just by changing the selection.
Pretty clear about why you do that and what will be the results. Should I remove the word *slightly*??
#15
But removing "slightly" would make the statement more neutral.
Also, I don't know if this is a step that should be in the setup. It seems like there should be a separate section on debugging/profiling/etc. anyway.
02/12/2009 (7:34 pm)
My problem was that I changed the library, migrated TGE 1.5 code to 1.8 over a few weeks, didn't immediately notice a performance problem, and then completely forgot about setting it. You can't fix my own stupid.But removing "slightly" would make the statement more neutral.
Also, I don't know if this is a step that should be in the setup. It seems like there should be a separate section on debugging/profiling/etc. anyway.
Torque 3D Owner Caylo Gypsyblood
William Lee Sims; do you have your display settings at MAX with AA'ing? your FPS seem very low for your system. Do you know what speed type of RAM you have? And your Front Side Bus (just curious as it is very possible your system bus is slowing you down)?