Game Development Community

TGEA 1.8.0 Mac : very low FPS

by Nicolas Buquet · in Torque Game Engine Advanced · 12/18/2008 (10:07 am) · 27 replies

On my computer :

MacBook Pro 2 x 2.2 GHz
RAM : 4GB
GPU : GeForce 8600M GT
MacOS X.5.6

The demos are quite slow (about 15 fps).

On T3D, on the start position, without moving, I get 6 fps at 1024x768 resolution (on a 2 screens configuration)

It seems something isn't working correctly.

here is the start of my console.log :

//-------------------------- 12/18/2008 -- 18:53:30 -----
System & Processor Information:
   MacOS version: 10.5.6
   CarbonLib version: 1.6.0
   Physical RAM: 2047MB
   Logical RAM: 2047MB
Unknown Getstalt value for processor type: 0x69353836
platform layer should be changed to use sysctl() instead of Gestalt() .
   Unknown Processor, assuming x86 Compatible, 2147 Mhz
   FPU detected
 
Math Init:
   Installing Standard C extensions
 
--------- Loading MODS ---------
Page «Previous 1 2
#1
12/18/2008 (10:08 am)
--------- Loading MODS ---------

--------- Parsing Arguments ---------
common/main.cs (30): Unable to find function initDisplayDeviceInfo
Binding server port to default IP
UDP initialized on port 0
Attempting to create GFX device: NVIDIA GeForce 8600M GT OpenGL Engine
Device created, setting adapter and enumerating modes
Initializing GFXCardProfiler (GL2.0)
   o Chipset : 'NVIDIA Corporation'
   o Card    : 'NVIDIA GeForce 8600M GT OpenGL Engine'
   o Version : '2.0 NVIDIA-1.5.36'
   - Scanning card capabilities...
GFXCardProfiler (GL2.0) - Setting capability 'maxTextureWidth' to 8192.
GFXCardProfiler (GL2.0) - Setting capability 'maxTextureHeight' to 8192.
GFXCardProfiler (GL2.0) - Setting capability 'maxTextureSize' to 8192.
GFXCardProfiler (GL2.0) - Setting capability 'GL::suppVertexBufferObject' to 1.
GFXCardProfiler (GL2.0) - Setting capability 'GL::suppRenderTexture' to 1.
GFXCardProfiler (GL2.0) - Setting capability 'GL::suppRTBlit' to 1.
GFXCardProfiler (GL2.0) - Setting capability 'GL::suppFloatTexture' to 1.
GFXCardProfiler (GL2.0) - Setting capability 'GL::suppMipLodBias' to 1.
GFXCardProfiler (GL2.0) - Setting capability 'GL::suppFragmentShader' to 1.
GFXCardProfiler (GL2.0) - Setting capability 'GL::APPLE::suppFence' to 1.
GFXCardProfiler (GL2.0) - Setting capability 'GL::Workaround::needsExplicitGenerateMipmap' to 0.
GFXCardProfiler (GL2.0) - Setting capability 'GL::Workaround::X1600DepthBufferCopy' to 0.
GFXCardProfiler (GL2.0) - Setting capability 'GL::Workaround::HD2600DepthBufferCopy' to 0.
   - Loading card profiles...
      - No card profile profile/GL20.cs exists
      - No card profile profile/GL20.NVIDIACorporation.cs exists
      - No card profile profile/GL20.NVIDIACorporation.NVIDIAGeForce8600MGTOpenGLEngine.cs exists
      - No card profile profile/GL20.NVIDIACorporation.NVIDIAGeForce8600MGTOpenGLEngine.20NVIDIA1536.cs exists
Texture Manager
   - Approx. Available VRAM:  128 MB
   - Threshold VRAM:  64 MB
   - Quality mode: high
 % - Initialized Common

--------- Initializing MOD: FPS ---------
#2
12/18/2008 (10:09 am)
--------- Initializing MOD: FPS ---------
sfxStartup...
SFXSystem::createDevice - created OpenAL device 'Built-in Output'
   Provider: OpenAL
   Device: Built-in Output
   Hardware: No
   Buffers: 16

--------- Initializing T3D: Server Scripts ---------

--------- Initializing T3D: Client Scripts ---------
--------------
Attempting to set resolution to "1024 768 false 24 60 0"
Accepted Mode: 
--Resolution : 1024 768
--Full Screen : No
--Bits Per Pixel : 24
--Refresh Rate : 60
--FSAA Level 0
--------------
Missing file: /Volumes/Projets/__TGEA_SDK/TorqueGameEngineAdvancedSDK-Mac-1-8-0/GameExamples/T3D/game/scriptsAndAssets/client/ui/optionsDlg.gui!
Could not create a description for binding: btn_a
Could not create a description for binding: btn_x
Could not create a description for binding: btn_back
Could not map material: TerrainSoft to a texture name, need to specify 'mapTo' or 'baseTex[0]' parameter
Could not map material: TerrainHard to a texture name, need to specify 'mapTo' or 'baseTex[0]' parameter
Binding server port to default IP
UDP initialized on port 0
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/BoomBot/BoomBot.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Elf/Elf.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/ForgeSoldier/ForgeSoldier.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Spacesuit/Spacesuit.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/TorqueOrc/TorqueOrc.dts
 % - Initializing common GUIs
 % - Initializing Tools
 % - Initializing Tools Base
 % - Initializing Base Editor
 % - Initializing Mission Editor
 % - Initializing Gui Builder
 % - Initializing Debugger
Engine initialized...
Window focus status changed: focus: 1
Window focus status changed: focus: 0
  Using background sleep time: 25
Window focus status changed: focus: 1
Exporting server prefs...
creating path common/prefs.cs
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/BoomBot/BoomBot.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Elf/Elf.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/ForgeSoldier/ForgeSoldier.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Spacesuit/Spacesuit.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/TorqueOrc/TorqueOrc.dts

//-----------------------------------------------
Loading light datablocks from: common/lighting/lights/

//-----------------------------------------------
#3
12/18/2008 (10:10 am)
//-----------------------------------------------
Loading light datablocks from: common/lighting/filters/
*** LOADING MISSION: scriptsAndAssets/data/missions/simple.mis
*** Stage 1 load
*** Stage 2 load
*** Mission loaded
Connect request from: 
Connection established 2184
CADD: 2185 local
*** Sending mission load to client: scriptsAndAssets/data/missions/simple.mis
Mapping string: ServerMessage to index: 0
Mapping string: MsgConnectionError to index: 1
onServerMessage: 
Mapping string: MsgLoadInfo to index: 2
onServerMessage: 
Mapping string: MsgLoadDescripition to index: 3
onServerMessage: 
Mapping string: MsgLoadInfoDone to index: 4
onServerMessage: 
Mapping string: MsgClientJoin to index: 5
Mapping string: Welcome to a Torque application %1. to index: 6
Mapping string: Visitor to index: 7
onServerMessage: 
  +- a: Welcome to a Torque application Visitor.
Mapping string: MissionStartPhase1 to index: 8
*** New Mission: scriptsAndAssets/data/missions/simple.mis
*** Phase 1: Download Datablocks & Targets
Mapping string: MissionStartPhase1Ack to index: 0
[MaterialList::mapMaterials] Creating missing material for texture: scriptsAndAssets/data/shapes/weapons/SwarmGun/guide
[MaterialList::mapMaterials] Creating missing material for texture: scriptsAndAssets/data/shapes/weapons/SwarmGun/energy
[MaterialList::mapMaterials] Creating missing material for texture: scriptsAndAssets/data/shapes/weapons/crossbow/debris.dts/clip
[MaterialList::mapMaterials] Creating missing material for texture: scriptsAndAssets/data/shapes/weapons/crossbow/projectile.dts/crossbow
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/BoomBot/BoomBot.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Elf/Elf.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/ForgeSoldier/ForgeSoldier.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Spacesuit/Spacesuit.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/TorqueOrc/TorqueOrc.dts
Mapping string: MissionStartPhase2 to index: 9
*** Phase 2: Download Ghost Objects
Mapping string: MissionStartPhase2Ack to index: 1
[MaterialList::mapMaterials] Creating missing material for texture: scriptsAndAssets/data/shapes/rocks/rock2
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Ghost Always objects received.
Mapping string: MissionStartPhase3 to index: 10
Client Replication Startup has Happened!
fxFoliageReplicator - replicated client foliage for 0 objects
*** Phase 3: Mission Lighting
 Successfully loaded mission lighting file: 'scriptsAndAssets/data/missions/simple_2c7a4311sg.ml'
Mission lighting done
Mapping string: MissionStartPhase3Ack to index: 2
Mapping string: MissionStart to index: 11
Mapping string: SyncClock to index: 12
*** Initial Control Object
==>metrics(fps);
CDROP: 2185 local
*** ENDING MISSION
Exporting server prefs...
creating path common/prefs.cs
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/BoomBot/BoomBot.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Elf/Elf.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/ForgeSoldier/ForgeSoldier.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Spacesuit/Spacesuit.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/TorqueOrc/TorqueOrc.dts
Exporting server prefs...
creating path common/prefs.cs
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/BoomBot/BoomBot.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Elf/Elf.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/ForgeSoldier/ForgeSoldier.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Spacesuit/Spacesuit.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/TorqueOrc/TorqueOrc.dts

//-----------------------------------------------
#4
12/18/2008 (10:11 am)
//-----------------------------------------------
Loading light datablocks from: common/lighting/lights/

//-----------------------------------------------
Loading light datablocks from: common/lighting/filters/
*** LOADING MISSION: scriptsAndAssets/data/missions/simple.mis
*** Stage 1 load
*** Stage 2 load
*** Mission loaded
Connect request from: 
Connection established 2244
CADD: 2245 local
*** Sending mission load to client: scriptsAndAssets/data/missions/simple.mis
Mapping string: ServerMessage to index: 0
Mapping string: MsgConnectionError to index: 1
onServerMessage: 
Mapping string: MsgLoadInfo to index: 2
onServerMessage: 
Mapping string: MsgLoadDescripition to index: 3
onServerMessage: 
Mapping string: MsgLoadInfoDone to index: 4
onServerMessage: 
Mapping string: MsgClientJoin to index: 5
Mapping string: Welcome to a Torque application %1. to index: 6
Mapping string: Visitor to index: 7
onServerMessage: 
  +- a: Welcome to a Torque application Visitor.
Mapping string: MissionStartPhase1 to index: 8
*** New Mission: scriptsAndAssets/data/missions/simple.mis
*** Phase 1: Download Datablocks & Targets
Mapping string: MissionStartPhase1Ack to index: 0
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/BoomBot/BoomBot.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Elf/Elf.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/ForgeSoldier/ForgeSoldier.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Spacesuit/Spacesuit.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/TorqueOrc/TorqueOrc.dts
Mapping string: MissionStartPhase2 to index: 9
*** Phase 2: Download Ghost Objects
Mapping string: MissionStartPhase2Ack to index: 1
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Ghost Always objects received.
Mapping string: MissionStartPhase3 to index: 10
Client Replication Startup has Happened!
fxFoliageReplicator - replicated client foliage for 0 objects
*** Phase 3: Mission Lighting
 Successfully loaded mission lighting file: 'scriptsAndAssets/data/missions/simple_2c7a4311sg.ml'
Mission lighting done
Mapping string: MissionStartPhase3Ack to index: 2
Mapping string: MissionStart to index: 11
Mapping string: SyncClock to index: 12
*** Initial Control Object
Exporting Gui preferences.
CDROP: 2245 local
*** ENDING MISSION
Exporting server prefs...
creating path common/prefs.cs
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/BoomBot/BoomBot.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Elf/Elf.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/ForgeSoldier/ForgeSoldier.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/SpaceOrc/SpaceOrc.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/Spacesuit/Spacesuit.dts
Validation required for shape: scriptsAndAssets/data/shapes/players/TorqueOrc/TorqueOrc.dts
Exporting client prefs
creating path scriptsAndAssets/client/prefs.cs
Exporting server prefs
creating path scriptsAndAssets/server/prefs.cs
creating path scriptsAndAssets/server/banlist.cs

Is it normal that it doesn't recognize my 4 GB of RAM, adn that it doesn't find my graphic card profile ?

Nicolas Buquet
#5
12/18/2008 (10:12 am)
Quote:Sytem Requirements: ... ATI or nVidia shader model 2.0+ video cards with 256 Mb video RAM
Quote:Approx. Available VRAM: 128 MB

VRAM shortage can cause all sorts of performance issues.
#6
12/18/2008 (10:40 am)
Yep. We've tested on the 256 MB version of the same macbook pro and it really did make the difference.
#7
12/18/2008 (11:10 am)
Thanks for your quick answer !

So I will have to change my Mac dev platform to make some serious TGEA applications !
#8
12/18/2008 (1:30 pm)
I'm also experiencing very low (around 16) fps on my iMac mostly when moving my character. Specs:

iMac (5,1) Intel Core2 Duo 2.16 GHz, 1GB, ATI Radeon X1600 with 128 MB VRAM running MacOS X 10.4.11

I know this also has only 128 Megs of VRAM on the video card, but that should be enough! I am getting these framerates at 800x600 windowed, while WoW runs in 1650x1080 going well above 30 fps - not even a hickup.

Considering that T3D is an empty test mission, these framerates are not good at all. I don't think that the solution should be adding more VRAM.

To be a little constructive besides flaming, I'll do my best to find out what's making it so slow. This is my first time using XCode, so no guarantees.. plus I'm in the middle of a thousand things, but I'll at least give it a try...
#9
12/18/2008 (1:51 pm)
@Konrad: Not only do we require 256 MB of VRAM, we also require Mac OS X 10.5.5. 10.5.6 preferred.

Folks, if you don't meet the minimum requirements things will be slow and are very likely to not function properly. Reducing the VRAM requirements of the demos would require significant amounts of art optimization which you can bet was done for WoW (and most other games), but we simply don't have the bandwidth to do at this time.
#10
12/18/2008 (2:04 pm)
The T3D mission uses a Megaterrain which will quickly eat up a chunk of that 128 megs VRAM.... running out of VRAM is a HUGE performance hit.

Regarding Apple GL drivers, I do wish that Apple wouldn't force people to pay for OS upgrades constantly... this really hurts software vendors and supporting the platform. Users are all on different point releases. Unfortunately, that is beyond GG's control. However, they *are* improving the platform for gaming which is a good thing.
#11
12/18/2008 (11:52 pm)
Understood, thanks for the response guys. I'll have to use a smaller visibility distance I guess.
#12
12/19/2008 (12:53 am)
And I will have to test without MegaTerrain.
#13
12/19/2008 (5:59 am)
I did some further testing.. Using the very same hardware, mission, window size, build mode, etc.. running Windows (through BootCamp) - of course with outdated video drivers - I get at least 15 fps more frames any second. It never went under 26 fps, however I tried. While moving, the average fps was 36 under Windows, and 16 under Mac OS X.

This comparison tells me that this should be faster regardless of MegaTerrain, visibility distance or art optimization. Maybe it's a difference between OS X and Windows or DirectX and OpenGL then?
#14
12/19/2008 (6:25 am)
In this forum TGEA 1.8.0 - Open GL Not working in Windows, Ron post Dec 18, 2008 16:59, Rene Damm said :

Quote:
Leaving the custom shader thing aside for a moment, why do you actually want OpenGL on Windows? All you get is crappy broken drivers with bad performance and lots and lots of issues (that's not to say you get something else on the Mac, but that's another topic... hehe)

What is your point of view about OpenGL broken drivers, bad perfs and issues ? Is the Mac platform unadapted for the moment ?

When I tried Instant Action, with Legions on my MacBook Pro, it was very fluid.

Is the IA engine a very different version than TGEA 1.8.0 ?
#15
12/19/2008 (6:41 am)
@Nicolas: Yes, the engine used for most of the Torque-based games on IA is different. TGEA 1.8 brought over a bunch of work from that engine - including the new GFX, new resource manager, new SFX, etc. - but they are still different.
#16
12/19/2008 (7:59 am)
There was a time where Legions also required 256MB of VRAM on OS X. It took some very extensive art optimization to bring that requirement down to 128 MB and the visual quality of Legions suffered somewhat.

Even our less graphically intensive games, such as Rokkitball, have required 256MB of VRAM before textures were resized, compressed, etc.

As for differences between OS X and WIndows XP, keep in mind that OS X itself is also very VRAM hungry. We don't get the full 128 MB on a 128 MB card. In practice I think we're able to use <= 95 MB of VRAM from a 128 MB card under OS X, whereas on Windows we can get pretty close to the full 128 MB. I've also seen some rather odd behavior on OS X when an application tries to use too much VRAM which can result in further decreased performance.

Again, VRAM issues are primarily solved by art optimization, not code, and we don't have the bandwidth to do extensive passes on the TGEA demos.
#17
12/19/2008 (9:44 am)
@Alex: Thanks, I'm a bit relieved that it's the OS, and not TGEA. Forgive me for not letting go of this until you had to go to extreme details - I appreciate the explanation.

I'm going to prepare an article about indie art optimization once I have gathered enough knowledge about this topic.

Thank you again.
#18
12/19/2008 (10:15 am)
Thanks for taking of your time to give us explanations GGers.

I will have to test with my own applications anyway.

Nicolas Buquet
#19
12/19/2008 (10:55 am)
In the T3D mission the MegaTerrain is the problem... its easly 50% of the frame rate on Windows... i'm sure its the same or worse on OSX.

When you look in the console you'll find something like this...
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
Allocating a 512 px clipmap for a 16384px source texture.
   - 5 base clipstack entries, + 1 cap.
   - Using approximately 7.980000MB of texture memory.
If your tight on video memory then go to each TerrainBlock in the demo and turn the 'texelsPerMeter' from 8 down to 4. If your framerate shoots up then you were over comitted on video memory.

Next... if you still have bad framerate go into the mission editor and delete one of the TerrainBlocks. If your framerate shoots up then you were probably CPU bound by the work done to submit the terrain triangle batches. There is nothing simple to do to fix that other than using fewer TerrainBlocks in your mission.

If you want the fastest terrain Torque has to offer at the moment... use Atlas.

If you want faster terrain use a single TerrainBlock and/or turn down the 'texelsPerMeter'... thats just all the options you have at the moment.
#20
12/19/2008 (11:14 am)
@Tom: Thank you. For some reason I've never thought of Atlas as a viable solution for a problem where legacy or MegaTerrain would do. But you're so right! I will check what's been causing the problem as you described, and post back here with the results.
Page «Previous 1 2