Poor P4 Performance
by Westy · in Torque Game Engine · 12/03/2003 (9:27 am) · 22 replies
At VisionWorksFX all the members with Pentuim 4 processers are suffering from very very poor frames per second. This isnt a problem for us with AMD Althon Chips, or even with a Celeron.
We decided to do dumps from the profiler on same map.
1) AMD Athlon XP 2400+ and Geforce3 Ti200 128mb.
%%NSTime %% Time Invoke # Name
49.645 49.645 1088 glFinish
8.858 8.858 1088 SkyRender
6.688 6.688 33435 DrawText
5.624 5.796 2176 TSShapeInstanceRender
3.764 41.730 1088 CanvasRenderControls
3.451 3.451 1088 TerrainRenderRecurse
3.366 3.366 34816 TerrainRenderBuild
2.504 2.881 1088 AdvanceClientTime
2.341 2.341 1088 BuildFogTexture
1.276 2.227 1662 Player_ProcessTick
1.174 1.263 1088 BuildSceneTree
0.976 0.976 34816 TerrainRenderXFRender
0.882 0.882 1088 SwapBuffers
0.855 3.738 1088 ClientProcess
0.827 7.440 4352 ShapeBaseRenderObject
0.687 0.699 1088 ClientNetProcess
0.660 26.024 6549 SceneStateRenderImage
0.652 6.448 2176 PlayerRenderMounted
0.585 100.000 1088 MainLoop
0.561 0.933 1662 Player_PhysicsSection
0.531 0.531 3963 ContainerCastRay
0.484 5.452 1088 TerrainRenderEmit
0.415 30.891 1088 GameRenderWorld
0.407 0.407 34816 TerrainRenderBind
0.366 0.366 1662 Player_UpdatePos
0.365 30.476 1088 SceneGraphRender
0.281 0.281 1088 CanvasPreRender
0.192 26.263 1088 TraverseScene
0.184 0.184 22201 MemoryAlloc
0.168 0.168 2176 TSShapeInstanceMaterials
0.166 2.393 1108 AdvanceObjects
0.162 0.162 22200 MemoryFree
0.149 0.149 1088 TerrainRenderSetup
0.140 0.140 2176 TerrainRenderDetails
0.122 0.141 1088 ServerNetProcess
0.068 0.131 4352 GetLightingAmbientColor
0.064 99.408 1088 ProcessTimeEvent
0.056 2.143 1088 AdvanceServerTime
0.052 0.052 2196 UpdateActionThread
0.047 92.585 1088 RenderFrame
0.038 0.038 34816 TerrainRenderSetVertexBuffer
0.034 0.034 1088 RegisterLights
0.030 0.030 2176 PlayerRenderPrimary
0.023 0.025 1088 SimAdvanceTime
0.021 0.021 34816 TerrainRenderLock
0.021 0.021 34816 TerrainRenderUnlock
0.013 9.065 1088 TerrainRender
0.013 2.156 1088 ServerProcess
0.007 0.007 42 ProcessInputEvent
0.003 0.003 2176 TSShapeInstanceRenderBillboards
0.003 0.003 2176 PlayerRenderShadow
0.000 0.000 1 MemoryRealloc
0.000 0.000 0 TerrainRenderBuildBlendMap
We decided to do dumps from the profiler on same map.
1) AMD Athlon XP 2400+ and Geforce3 Ti200 128mb.
%%NSTime %% Time Invoke # Name
49.645 49.645 1088 glFinish
8.858 8.858 1088 SkyRender
6.688 6.688 33435 DrawText
5.624 5.796 2176 TSShapeInstanceRender
3.764 41.730 1088 CanvasRenderControls
3.451 3.451 1088 TerrainRenderRecurse
3.366 3.366 34816 TerrainRenderBuild
2.504 2.881 1088 AdvanceClientTime
2.341 2.341 1088 BuildFogTexture
1.276 2.227 1662 Player_ProcessTick
1.174 1.263 1088 BuildSceneTree
0.976 0.976 34816 TerrainRenderXFRender
0.882 0.882 1088 SwapBuffers
0.855 3.738 1088 ClientProcess
0.827 7.440 4352 ShapeBaseRenderObject
0.687 0.699 1088 ClientNetProcess
0.660 26.024 6549 SceneStateRenderImage
0.652 6.448 2176 PlayerRenderMounted
0.585 100.000 1088 MainLoop
0.561 0.933 1662 Player_PhysicsSection
0.531 0.531 3963 ContainerCastRay
0.484 5.452 1088 TerrainRenderEmit
0.415 30.891 1088 GameRenderWorld
0.407 0.407 34816 TerrainRenderBind
0.366 0.366 1662 Player_UpdatePos
0.365 30.476 1088 SceneGraphRender
0.281 0.281 1088 CanvasPreRender
0.192 26.263 1088 TraverseScene
0.184 0.184 22201 MemoryAlloc
0.168 0.168 2176 TSShapeInstanceMaterials
0.166 2.393 1108 AdvanceObjects
0.162 0.162 22200 MemoryFree
0.149 0.149 1088 TerrainRenderSetup
0.140 0.140 2176 TerrainRenderDetails
0.122 0.141 1088 ServerNetProcess
0.068 0.131 4352 GetLightingAmbientColor
0.064 99.408 1088 ProcessTimeEvent
0.056 2.143 1088 AdvanceServerTime
0.052 0.052 2196 UpdateActionThread
0.047 92.585 1088 RenderFrame
0.038 0.038 34816 TerrainRenderSetVertexBuffer
0.034 0.034 1088 RegisterLights
0.030 0.030 2176 PlayerRenderPrimary
0.023 0.025 1088 SimAdvanceTime
0.021 0.021 34816 TerrainRenderLock
0.021 0.021 34816 TerrainRenderUnlock
0.013 9.065 1088 TerrainRender
0.013 2.156 1088 ServerProcess
0.007 0.007 42 ProcessInputEvent
0.003 0.003 2176 TSShapeInstanceRenderBillboards
0.003 0.003 2176 PlayerRenderShadow
0.000 0.000 1 MemoryRealloc
0.000 0.000 0 TerrainRenderBuildBlendMap
About the author
#2
3) AMD Althon XP 1800+ and Geforce 2 mx400
%NSTime % Time Invoke # Name
20.310 20.310 656 glFinish
9.585 44.174 20566 SceneStateRenderImage
6.877 12.221 656 AdvanceClientTime
6.108 6.453 4001 TSShapeInstanceRender
5.846 5.846 656 SkyRender
5.430 5.430 6935 ISAPL_Setup
5.000 5.000 3984 InteriorScanZoneNew
4.363 5.070 2137 Player_UpdatePos
4.175 4.175 6935 IRO_Render_VC_FC
4.107 5.484 656 BuildSceneTree
3.444 3.444 31658 TerrainRenderBuild
2.091 2.091 10461 DrawText
2.008 56.629 656 CanvasRenderControls
1.834 1.834 656 TerrainRenderRecurse
1.831 8.911 2849 Player_ProcessTick
1.565 1.565 656 BuildFogTexture
1.301 6.374 2202 Player_PhysicsSection
0.959 0.959 6935 ISAPL_Merge
0.921 0.921 5437 ContainerCastRay
0.915 0.934 656 ClientNetProcess
0.870 0.870 1312 PlayerRenderShadow
0.766 1.235 6935 InteriorPrepRenderImage
0.731 5.090 3795 ShapeBaseRenderObject
0.686 0.686 31636 TerrainRenderXFRender
0.612 100.000 656 MainLoop
0.546 4.721 6935 IRO_RenderSolids
0.525 9.441 1424 AdvanceObjects
0.436 0.436 31636 TerrainRenderBind
0.412 0.743 8953 InteriorZoneTraversal
0.393 5.493 656 TerrainRenderEmit
0.351 52.049 656 SceneGraphRender
0.340 0.340 4001 TSShapeInstanceMaterials
0.334 0.334 656 SwapBuffers
0.331 0.331 8953 InteriorTraverseZone
0.328 0.407 656 ServerNetProcess
0.319 0.321 87 TerrainRenderBuildBlendMap
0.298 52.347 656 GameRenderWorld
0.287 12.391 6935 InteriorRenderObject
0.281 0.281 44227 MemoryAlloc
0.266 6.656 6935 InteriorSetupActivePolyList
0.243 0.243 44007 MemoryFree
0.232 44.446 656 TraverseScene
0.216 12.461 656 ClientProcess
0.165 0.165 6935 IRO_GetZones
0.149 0.149 5026 TerrainRenderDetails
0.148 0.148 656 CanvasPreRender
0.129 0.147 391 ProcessInputEvent
0.110 0.429 2018 InteriorPrepTempRender
0.101 0.103 2737 UpdateActionThread
0.080 0.080 656 TerrainRenderSetup
0.073 0.181 6399 GetLightingAmbientColor
0.072 0.072 6935 IRO_RenderDynamicLights
0.064 1.775 1171 ShapeBaseRenderPrimary
0.060 0.088 15442 MemoryRealloc
0.056 7.141 6935 IRO_ComputeActivePolys
0.045 7.916 656 AdvanceServerTime
0.043 99.241 656 ProcessTimeEvent
0.032 0.325 106 PlayerRenderMounted
0.031 1.214 1312 PlayerRenderPrimary
0.030 0.030 31636 TerrainRenderSetVertexBuffer
0.028 77.450 656 RenderFrame
0.025 0.025 656 RegisterLights
0.021 0.023 656 SimAdvanceTime
0.017 0.017 31658 TerrainRenderLock
0.016 0.016 31658 TerrainRenderUnlock
0.008 7.925 656 ServerProcess
0.008 7.415 656 TerrainRender
0.005 0.005 4001 TSShapeInstanceRenderBillboards
0.005 0.005 6935 IRO_UpdateAnimatedLights
0.002 0.002 1171 ShapeBaseRenderShadow
12/03/2003 (9:29 am)
Continued3) AMD Althon XP 1800+ and Geforce 2 mx400
%NSTime % Time Invoke # Name
20.310 20.310 656 glFinish
9.585 44.174 20566 SceneStateRenderImage
6.877 12.221 656 AdvanceClientTime
6.108 6.453 4001 TSShapeInstanceRender
5.846 5.846 656 SkyRender
5.430 5.430 6935 ISAPL_Setup
5.000 5.000 3984 InteriorScanZoneNew
4.363 5.070 2137 Player_UpdatePos
4.175 4.175 6935 IRO_Render_VC_FC
4.107 5.484 656 BuildSceneTree
3.444 3.444 31658 TerrainRenderBuild
2.091 2.091 10461 DrawText
2.008 56.629 656 CanvasRenderControls
1.834 1.834 656 TerrainRenderRecurse
1.831 8.911 2849 Player_ProcessTick
1.565 1.565 656 BuildFogTexture
1.301 6.374 2202 Player_PhysicsSection
0.959 0.959 6935 ISAPL_Merge
0.921 0.921 5437 ContainerCastRay
0.915 0.934 656 ClientNetProcess
0.870 0.870 1312 PlayerRenderShadow
0.766 1.235 6935 InteriorPrepRenderImage
0.731 5.090 3795 ShapeBaseRenderObject
0.686 0.686 31636 TerrainRenderXFRender
0.612 100.000 656 MainLoop
0.546 4.721 6935 IRO_RenderSolids
0.525 9.441 1424 AdvanceObjects
0.436 0.436 31636 TerrainRenderBind
0.412 0.743 8953 InteriorZoneTraversal
0.393 5.493 656 TerrainRenderEmit
0.351 52.049 656 SceneGraphRender
0.340 0.340 4001 TSShapeInstanceMaterials
0.334 0.334 656 SwapBuffers
0.331 0.331 8953 InteriorTraverseZone
0.328 0.407 656 ServerNetProcess
0.319 0.321 87 TerrainRenderBuildBlendMap
0.298 52.347 656 GameRenderWorld
0.287 12.391 6935 InteriorRenderObject
0.281 0.281 44227 MemoryAlloc
0.266 6.656 6935 InteriorSetupActivePolyList
0.243 0.243 44007 MemoryFree
0.232 44.446 656 TraverseScene
0.216 12.461 656 ClientProcess
0.165 0.165 6935 IRO_GetZones
0.149 0.149 5026 TerrainRenderDetails
0.148 0.148 656 CanvasPreRender
0.129 0.147 391 ProcessInputEvent
0.110 0.429 2018 InteriorPrepTempRender
0.101 0.103 2737 UpdateActionThread
0.080 0.080 656 TerrainRenderSetup
0.073 0.181 6399 GetLightingAmbientColor
0.072 0.072 6935 IRO_RenderDynamicLights
0.064 1.775 1171 ShapeBaseRenderPrimary
0.060 0.088 15442 MemoryRealloc
0.056 7.141 6935 IRO_ComputeActivePolys
0.045 7.916 656 AdvanceServerTime
0.043 99.241 656 ProcessTimeEvent
0.032 0.325 106 PlayerRenderMounted
0.031 1.214 1312 PlayerRenderPrimary
0.030 0.030 31636 TerrainRenderSetVertexBuffer
0.028 77.450 656 RenderFrame
0.025 0.025 656 RegisterLights
0.021 0.023 656 SimAdvanceTime
0.017 0.017 31658 TerrainRenderLock
0.016 0.016 31658 TerrainRenderUnlock
0.008 7.925 656 ServerProcess
0.008 7.415 656 TerrainRender
0.005 0.005 4001 TSShapeInstanceRenderBillboards
0.005 0.005 6935 IRO_UpdateAnimatedLights
0.002 0.002 1171 ShapeBaseRenderShadow
#3
4) Pentuim 4 2.0ghz and geforce 2 mx400
%NSTime % Time Invoke # Name
28.276 28.521 9763 TSShapeInstanceRender
15.126 15.126 72555 TerrainRenderXFRender
13.343 100.000 781 MainLoop
6.435 7.950 10085 Player_UpdatePos
4.432 62.492 26285 SceneStateRenderImage
3.794 3.794 9499 InteriorScanZoneNew
3.267 3.267 72589 TerrainRenderBuild
2.934 7.096 781 AdvanceClientTime
2.660 2.660 770 SkyRender
2.392 12.712 12095 Player_ProcessTick
2.038 2.494 781 BuildSceneTree
1.688 9.643 10233 Player_PhysicsSection
1.668 1.668 6413 IRO_Render_VC_FC
1.422 1.422 6413 ISAPL_Setup
1.237 1.239 770 TerrainRenderRecurse
1.155 1.156 1590 PlayerRenderShadow
0.651 13.391 6048 AdvanceObjects
0.605 0.605 781 BuildFogTexture
0.582 66.971 781 CanvasRenderControls
0.488 0.488 6413 ISAPL_Merge
0.475 0.475 8136 ContainerCastRay
0.396 0.402 781 ClientNetProcess
0.361 17.280 4703 ShapeBaseRenderObject
0.359 0.359 781 SwapBuffers
0.316 19.375 770 TerrainRenderEmit
0.269 0.322 781 ServerNetProcess
0.264 0.264 239 TerrainRenderBuildBlendMap
0.252 0.252 3684 DrawText
0.245 0.395 6556 InteriorPrepRenderImage
0.242 0.242 72555 TerrainRenderBind
0.241 0.241 9763 TSShapeInstanceMaterials
0.204 0.204 781 glFinish
0.154 6.317 1590 PlayerRenderMounted
0.152 1.820 6413 IRO_RenderSolids
0.133 0.239 8477 InteriorZoneTraversal
0.126 7.254 781 ClientProcess
0.125 65.913 781 SceneGraphRender
0.116 0.116 63466 MemoryAlloc
0.114 62.623 781 TraverseScene
0.111 0.111 63219 MemoryFree
0.106 0.106 8477 InteriorTraverseZone
0.106 0.106 7895 TerrainRenderDetails
0.105 66.018 781 GameRenderWorld
0.082 1.992 6413 InteriorSetupActivePolyList
0.081 4.188 6413 InteriorRenderObject
0.074 0.080 7609 UpdateActionThread
0.067 0.067 6413 IRO_GetZones
0.067 0.067 6413 IRO_RenderDynamicLights
0.053 0.053 781 CanvasPreRender
0.051 0.059 419 ProcessInputEvent
0.043 0.143 2064 InteriorPrepTempRender
0.034 0.034 770 TerrainRenderSetup
0.032 0.078 10965 GetLightingAmbientColor
0.031 10.967 781 AdvanceServerTime
0.029 1.935 1523 ShapeBaseRenderPrimary
0.029 86.596 781 ProcessTimeEvent
0.025 0.025 72555 TerrainRenderSetVertexBuffer
0.021 0.024 781 SimAdvanceTime
0.021 7.437 1590 PlayerRenderPrimary
0.020 0.032 16933 MemoryRealloc
0.018 2.153 6413 IRO_ComputeActivePolys
0.015 0.015 72589 TerrainRenderLock
0.015 0.015 72589 TerrainRenderUnlock
0.009 0.009 781 RegisterLights
0.008 67.595 781 RenderFrame
0.004 0.004 9763 TSShapeInstanceRenderBillboards
0.003 10.970 781 ServerProcess
0.003 20.651 770 TerrainRender
0.001 0.001 6413 IRO_UpdateAnimatedLights
0.001 0.001 1523 ShapeBaseRenderShadow
12/03/2003 (9:29 am)
Continued4) Pentuim 4 2.0ghz and geforce 2 mx400
%NSTime % Time Invoke # Name
28.276 28.521 9763 TSShapeInstanceRender
15.126 15.126 72555 TerrainRenderXFRender
13.343 100.000 781 MainLoop
6.435 7.950 10085 Player_UpdatePos
4.432 62.492 26285 SceneStateRenderImage
3.794 3.794 9499 InteriorScanZoneNew
3.267 3.267 72589 TerrainRenderBuild
2.934 7.096 781 AdvanceClientTime
2.660 2.660 770 SkyRender
2.392 12.712 12095 Player_ProcessTick
2.038 2.494 781 BuildSceneTree
1.688 9.643 10233 Player_PhysicsSection
1.668 1.668 6413 IRO_Render_VC_FC
1.422 1.422 6413 ISAPL_Setup
1.237 1.239 770 TerrainRenderRecurse
1.155 1.156 1590 PlayerRenderShadow
0.651 13.391 6048 AdvanceObjects
0.605 0.605 781 BuildFogTexture
0.582 66.971 781 CanvasRenderControls
0.488 0.488 6413 ISAPL_Merge
0.475 0.475 8136 ContainerCastRay
0.396 0.402 781 ClientNetProcess
0.361 17.280 4703 ShapeBaseRenderObject
0.359 0.359 781 SwapBuffers
0.316 19.375 770 TerrainRenderEmit
0.269 0.322 781 ServerNetProcess
0.264 0.264 239 TerrainRenderBuildBlendMap
0.252 0.252 3684 DrawText
0.245 0.395 6556 InteriorPrepRenderImage
0.242 0.242 72555 TerrainRenderBind
0.241 0.241 9763 TSShapeInstanceMaterials
0.204 0.204 781 glFinish
0.154 6.317 1590 PlayerRenderMounted
0.152 1.820 6413 IRO_RenderSolids
0.133 0.239 8477 InteriorZoneTraversal
0.126 7.254 781 ClientProcess
0.125 65.913 781 SceneGraphRender
0.116 0.116 63466 MemoryAlloc
0.114 62.623 781 TraverseScene
0.111 0.111 63219 MemoryFree
0.106 0.106 8477 InteriorTraverseZone
0.106 0.106 7895 TerrainRenderDetails
0.105 66.018 781 GameRenderWorld
0.082 1.992 6413 InteriorSetupActivePolyList
0.081 4.188 6413 InteriorRenderObject
0.074 0.080 7609 UpdateActionThread
0.067 0.067 6413 IRO_GetZones
0.067 0.067 6413 IRO_RenderDynamicLights
0.053 0.053 781 CanvasPreRender
0.051 0.059 419 ProcessInputEvent
0.043 0.143 2064 InteriorPrepTempRender
0.034 0.034 770 TerrainRenderSetup
0.032 0.078 10965 GetLightingAmbientColor
0.031 10.967 781 AdvanceServerTime
0.029 1.935 1523 ShapeBaseRenderPrimary
0.029 86.596 781 ProcessTimeEvent
0.025 0.025 72555 TerrainRenderSetVertexBuffer
0.021 0.024 781 SimAdvanceTime
0.021 7.437 1590 PlayerRenderPrimary
0.020 0.032 16933 MemoryRealloc
0.018 2.153 6413 IRO_ComputeActivePolys
0.015 0.015 72589 TerrainRenderLock
0.015 0.015 72589 TerrainRenderUnlock
0.009 0.009 781 RegisterLights
0.008 67.595 781 RenderFrame
0.004 0.004 9763 TSShapeInstanceRenderBillboards
0.003 10.970 781 ServerProcess
0.003 20.651 770 TerrainRender
0.001 0.001 6413 IRO_UpdateAnimatedLights
0.001 0.001 1523 ShapeBaseRenderShadow
#4
As you can see from them, the Pentuim 4's are choking on
TSShapeInstanceRender
TerrainRenderXFRender
P4(1)
27.243 27.507 TSShapeInstanceRender
19.626 19.626 TerrainRenderXFRender
AVERAGE FPS = 8
P4(2)
28.276 28.521 TSShapeInstanceRender
15.126 15.126 TerrainRenderXFRender
AVERAGE FPS = 10
AMD(1)
5.624 5.796 TSShapeInstanceRender
0.976 0.976 TerrainRenderXFRender
AVERAGE FPS = 70
AMD(2)
6.108 6.453 TSShapeInstanceRender
0.686 0.686 TerrainRenderXFRender
AVERAGE FPS = 40
Any Ideas?
12/03/2003 (9:29 am)
ContinuedAs you can see from them, the Pentuim 4's are choking on
TSShapeInstanceRender
TerrainRenderXFRender
P4(1)
27.243 27.507 TSShapeInstanceRender
19.626 19.626 TerrainRenderXFRender
AVERAGE FPS = 8
P4(2)
28.276 28.521 TSShapeInstanceRender
15.126 15.126 TerrainRenderXFRender
AVERAGE FPS = 10
AMD(1)
5.624 5.796 TSShapeInstanceRender
0.976 0.976 TerrainRenderXFRender
AVERAGE FPS = 70
AMD(2)
6.108 6.453 TSShapeInstanceRender
0.686 0.686 TerrainRenderXFRender
AVERAGE FPS = 40
Any Ideas?
#5
Well there might be some optimization problems that were only done for AMD CPU extensions.
12/03/2003 (10:10 am)
More reasons why you should choose AMD! Just Kidding :)Well there might be some optimization problems that were only done for AMD CPU extensions.
#6
12/03/2003 (10:53 am)
Well yes, AMD rocks :)
#7
12/03/2003 (11:22 am)
Did you try commenting out glFinish? It's taking like 40% of your time, and it's not always necessary.
#8
12/03/2003 (11:32 am)
No glfinish is only taking that on the systems with good fps. only on the athlon systems, the P4's sufffering from bad fps its not using any time hardly.. maybe it should be?
#9
glFinish is waiting for the graphics card to finish rendering, basically. On your AMD system, the CPU is flying so far ahead of the graphics board it's got to wait around for a while in glFinish for the triangles to finish rendering.
On your P4 systems, your CPU is lagging so much the graphics board is finishing with time to spare.
12/03/2003 (12:12 pm)
I'm sure the P4's will use more time in glFinish once you fix your other problem.glFinish is waiting for the graphics card to finish rendering, basically. On your AMD system, the CPU is flying so far ahead of the graphics board it's got to wait around for a while in glFinish for the triangles to finish rendering.
On your P4 systems, your CPU is lagging so much the graphics board is finishing with time to spare.
#10
12/03/2003 (12:17 pm)
Yes, and im sure the problem is calculations for rendering shapes and terrain on the P4, not calculating fast enough for the graphics card.
#11
Add more profiling blocks and find out what exactly is taking the time.
12/03/2003 (12:29 pm)
Ah, I misread the numbers at the end, and saw the times spent in the render code as the FPS. :)Add more profiling blocks and find out what exactly is taking the time.
#12
12/03/2003 (12:29 pm)
Well this is the function where the P4's are struggling.void TSShapeInstance::render(const Point3F * objectScale)
{
if (mCurrentDetailLevel<0)
return;
PROFILE_START(TSShapeInstanceRender);
dglSetRenderPrimType(3);
// alphaIn: we start to alpha-in next detail level when intraDL > 1-alphaIn-alphaOut
// (finishing when intraDL = 1-alphaOut)
// alphaOut: start to alpha-out this detail level when intraDL > 1-alphaOut
// NOTE:
// intraDL is at 1 when if shape were any closer to us we'd be at dl-1,
// intraDL is at 0 when if shape were any farther away we'd be at dl+1
F32 alphaOut = mShape->alphaOut[mCurrentDetailLevel];
F32 alphaIn = mShape->alphaIn[mCurrentDetailLevel];
F32 saveAA = mAlphaAlways ? mAlphaAlwaysValue : 1.0f;
if (mCurrentIntraDetailLevel>alphaIn+alphaOut)
render(mCurrentDetailLevel,mCurrentIntraDetailLevel,objectScale);
else if (mCurrentIntraDetailLevel>alphaOut)
{
// draw this detail level w/ alpha=1 and next detail level w/
// alpha=1-(intraDl-alphaOut)/alphaIn
// first draw next detail level
if (mCurrentDetailLevel+1<mShape->details.size() && mShape->details[mCurrentDetailLevel+1].size>0.0f)
{
setAlphaAlways(saveAA * (alphaIn+alphaOut-mCurrentIntraDetailLevel)/alphaIn);
render(mCurrentDetailLevel+1,0.0f,objectScale);
}
setAlphaAlways(saveAA);
render(mCurrentDetailLevel,mCurrentIntraDetailLevel,objectScale);
}
else
{
// draw next detail level w/ alpha=1 and this detail level w/
// alpha = 1-intraDL/alphaOut
// first draw next detail level
if (mCurrentDetailLevel+1<mShape->details.size() && mShape->details[mCurrentDetailLevel+1].size>0.0f)
render(mCurrentDetailLevel+1,0.0f,objectScale);
setAlphaAlways(saveAA * mCurrentIntraDetailLevel / alphaOut);
render(mCurrentDetailLevel,mCurrentIntraDetailLevel,objectScale);
setAlphaAlways(saveAA);
}
dglSetRenderPrimType(0);
PROFILE_END();
}
#13
12/03/2003 (12:34 pm)
And also on renderXFCache();Which is:
void TerrainRender::renderXFCache()
{
U32 count = 0;
while (count < mXFIndexCount)
{
U32 mode = mXFIndexBuffer[count];
U32 vertexCount = mXFIndexBuffer[count + 1];
glDrawElements(mode, vertexCount, GL_UNSIGNED_SHORT, mXFIndexBuffer + count + 2);
count += vertexCount + 2;
}
}
#14
12/03/2003 (12:43 pm)
Hmm. renderXFCache is a small loop. Try throwing another profile block around the glDrawElements call there - this may actually be a slowdown in the graphics drivers.
#15
12/03/2003 (12:46 pm)
Yes i have added more profiles throughout these 2 functions, now i just need P4 guys to come online :p
#16
here it is:
12/03/2003 (2:05 pm)
Ok using more profiles i have found the line of code causing all the CPU time to be taken up.here it is:
dglSetRenderPrimType(3);
#17
12/03/2003 (2:39 pm)
That's pretty interesting, because the function is defined as...inline void dglSetRenderPrimType(unsigned int type)
{
gGLState.primMode = type;
}
#18
12/03/2003 (6:19 pm)
Are you sure this isn't an issue with the buggy new NVidia drivers? I had to revert to previous version because of very slow framerates.
#19
12/03/2003 (7:01 pm)
I'm pretty sure it is a driver problem, many people have talked about the latest driver killing their fps in torque.
#20
If you are having trouble with framerates on new drivers, i suggest you revert to to version 45.26, they seem to work much better with torque.
12/04/2003 (5:06 am)
Yes it seems as though it is.. as it all traces back to an OpenGL command. I heard its with the nvidia 50 series.If you are having trouble with framerates on new drivers, i suggest you revert to to version 45.26, they seem to work much better with torque.
Torque Owner Westy
2)Pentuim 4 2.0GHZ and Geforce FX 5200 128mb
%NSTime % Time Invoke # Name
27.243 27.507 840 TSShapeInstanceRender
19.626 19.626 8484 TerrainRenderXFRender
6.077 6.077 8484 TerrainRenderBuild
6.073 7.089 588 Player_UpdatePos
5.150 69.115 1932 SceneStateRenderImage
4.942 4.942 84 SkyRender
4.839 4.839 690 InteriorScanZoneNew
4.523 9.332 84 AdvanceClientTime
3.178 3.178 2678 DrawText
2.452 2.452 84 TerrainRenderRecurse
2.437 12.387 780 Player_ProcessTick
1.887 8.976 625 Player_PhysicsSection
1.440 1.753 84 BuildSceneTree
1.393 77.166 84 CanvasRenderControls
1.086 1.086 84 BuildFogTexture
0.669 27.091 84 TerrainRenderEmit
0.572 0.580 84 ClientNetProcess
0.472 0.472 252 IRO_RenderARB_FC
0.439 12.826 390 AdvanceObjects
0.422 0.422 84 SwapBuffers
0.412 0.412 630 ContainerCastRay
0.381 0.459 84 ServerNetProcess
0.363 100.000 84 MainLoop
0.358 0.358 8484 TerrainRenderBind
0.318 9.669 84 ClientProcess
0.310 7.295 336 ShapeBaseRenderObject
0.273 0.273 1092 TerrainRenderDetails
0.271 6.901 168 PlayerRenderMounted
0.259 0.259 840 TSShapeInstanceMaterials
0.176 0.176 84 glFinish
0.170 72.384 84 SceneGraphRender
0.154 0.239 252 InteriorPrepRenderImage
0.149 0.149 4716 MemoryFree
0.129 0.129 4716 MemoryAlloc
0.128 72.512 84 GameRenderWorld
0.121 0.164 336 InteriorZoneTraversal
0.121 69.252 84 TraverseScene
0.100 0.100 84 CanvasPreRender
0.100 0.100 252 ISAPL_Setup
0.071 0.071 252 ISAPL_Merge
0.063 0.536 252 IRO_RenderSolids
0.057 0.229 252 InteriorSetupActivePolyList
0.054 0.054 84 TerrainRenderSetup
0.052 0.052 252 IRO_GetZones
0.043 0.043 336 InteriorTraverseZone
0.039 0.039 8484 TerrainRenderSetVertexBuffer
0.038 10.966 84 AdvanceServerTime
0.038 0.038 558 UpdateActionThread
0.036 1.002 252 InteriorRenderObject
0.034 0.034 38 ProcessInputEvent
0.027 0.080 1008 GetLightingAmbientColor
0.027 0.029 84 SimAdvanceTime
0.025 0.025 8484 TerrainRenderLock
0.024 99.603 84 ProcessTimeEvent
0.024 0.024 252 IRO_UpdateAnimatedLights
0.023 0.023 8484 TerrainRenderUnlock
0.023 0.106 84 InteriorPrepTempRender
0.021 0.021 84 RegisterLights
0.015 0.039 829 MemoryRealloc
0.011 0.346 252 IRO_ComputeActivePolys
0.009 0.009 252 IRO_RenderDynamicLights
0.009 77.872 84 RenderFrame
0.008 0.008 168 PlayerRenderPrimary
0.005 0.005 840 TSShapeInstanceRenderBillboards
0.004 29.601 84 TerrainRender
0.004 10.970 84 ServerProcess
0.001 0.001 168 PlayerRenderShadow
0.000 0.000 0 TerrainRenderBuildBlendMap
0.000 0.000 0 ShapeBaseRenderShadow
0.000 0.000 0 ShapeBaseRenderPrimary