Runs slower on Intel than PPC?
by Rubes · in Torque Game Engine · 04/18/2008 (9:43 pm) · 17 replies
I'm really baffled with this one.
I've been doing some work trying to optimize frame rates on different platforms, and I'm finding something that doesn't seem to make a lot of sense to me. I'm using TGE 1.5.2 + AFX with a number of modifications. My target right now is three platforms: Mac OS X (PPC), OS X (Intel), and Windows (I'm using XP).
My desktop is a PPC G5 with 2.5GB RAM and an ATI X800 card, and it's running OS X 10.5.2.
My laptop is a Mac Intel Core Duo with 2GB RAM and an ATI X1600 card. The drive on the laptop has two partitions, one running OS X (10.5.2), the other running Windows XP (via Boot Camp).
So the laptop is newer, faster, and has a better graphics card than the desktop. I would expect the game to run much better on the laptop under both Mac (Intel) and Windows (XP) than on the desktop (PPC).
So I created two versions of my game, one a Universal build for Mac (PPC+Intel) and the other for Windows.
The result is that the game runs best on the laptop under Windows, and almost as well on the desktop (PPC). But finishing a distant third is the laptop under OS X (Intel). Frame rates are far less than what I see with the laptop under XP, and even far below the desktop running OS X (PPC). The desktop can even run faster with a much larger game screen resolution, despite the fact that it has a slower CPU and older graphics card.
I double and triple checked this, making sure there were no other major processes running on the laptop. Activity Monitor showed the game being the main process and not much else going on.
So I figure I must be doing something wrong with the Universal build of the engine, right? I don't know. I double checked my compiler settings, and I'm certain it's creating a Universal build. The architectures are set to "ppc i386", the SDK root for PPC is 10.3.9.sdk, and the SDK root for i386 is 10.4u.sdk. Activity Monitor on the laptop also shows the game is an Intel process. I'm not really sure what else to do.
Any help would be greatly appreciated...
I've been doing some work trying to optimize frame rates on different platforms, and I'm finding something that doesn't seem to make a lot of sense to me. I'm using TGE 1.5.2 + AFX with a number of modifications. My target right now is three platforms: Mac OS X (PPC), OS X (Intel), and Windows (I'm using XP).
My desktop is a PPC G5 with 2.5GB RAM and an ATI X800 card, and it's running OS X 10.5.2.
My laptop is a Mac Intel Core Duo with 2GB RAM and an ATI X1600 card. The drive on the laptop has two partitions, one running OS X (10.5.2), the other running Windows XP (via Boot Camp).
So the laptop is newer, faster, and has a better graphics card than the desktop. I would expect the game to run much better on the laptop under both Mac (Intel) and Windows (XP) than on the desktop (PPC).
So I created two versions of my game, one a Universal build for Mac (PPC+Intel) and the other for Windows.
The result is that the game runs best on the laptop under Windows, and almost as well on the desktop (PPC). But finishing a distant third is the laptop under OS X (Intel). Frame rates are far less than what I see with the laptop under XP, and even far below the desktop running OS X (PPC). The desktop can even run faster with a much larger game screen resolution, despite the fact that it has a slower CPU and older graphics card.
I double and triple checked this, making sure there were no other major processes running on the laptop. Activity Monitor showed the game being the main process and not much else going on.
So I figure I must be doing something wrong with the Universal build of the engine, right? I don't know. I double checked my compiler settings, and I'm certain it's creating a Universal build. The architectures are set to "ppc i386", the SDK root for PPC is 10.3.9.sdk, and the SDK root for i386 is 10.4u.sdk. Activity Monitor on the laptop also shows the game is an Intel process. I'm not really sure what else to do.
Any help would be greatly appreciated...
#2
Er...quick reminder how I would check that?
04/19/2008 (5:57 pm)
I remember a while ago there was problems because the terrain blender was using the C one, which is orders of magnitude slower than the asm one. You could try checking whether the asm one is actually being used there.Er...quick reminder how I would check that?
#3
Running on the PPC:
Running on the Intel:
So it looks like some things that are used heavily on the Intel (vm_map_lookup_entry, vm_map_enter, pmap_page_protect, and a few other things) are barely used on the PPC and seem to take up a lot of processor time on the Intel build. I don't know much about these things, though. Any thoughts?
04/19/2008 (7:00 pm)
Here's the Shark output. Only the busiest stuff listed.Running on the PPC:
- 13.2% Interior::buildPolyList_r(InteriorPolytope&, SurfaceHash&) (ArcaneFX-Demo OSX) - 4.1% gldInitDispatch (ATIRadeon9700GLDriver) - 3.3% Interior::renderARB(bool, MaterialList*, unsigned) (ArcaneFX-Demo OSX) - 2.4% ATIRadeon9700::submit_buffer(unsigned long*, unsigned long, unsigned long) (com.apple.ATIRadeon9700) - 2.3% processTriFan (ArcaneFX-Demo OSX) - 1.7% InteriorPolytope::intersect(PlaneF const&, Point3F const&, Point3F const&) (ArcaneFX-Demo OSX) - 1.6% 0x18c6b290 [184B] () - 1.5% gldGetQueryInfo (ATIRadeon9700GLDriver) - 1.4% gldUpdateDispatch (ATIRadeon9700GLDriver) - 1.3% Interior::setupActivePolyList(ZoneVisDeterminer&, SceneState*, Point3F const&, Point3F const&, Point3F const&, float, Point3F const&) (ArcaneFX-Demo OSX) - 1.2% gleDrawArraysOrElements_CVA_Exec (GLEngine) - 1.2% ATIR300Memory::alloc(GLKMemoryElement*, unsigned long, unsigned long) (com.apple.ATIRadeon9700) - 1.2% TerrainRender::renderChunkOutline(EmitChunk*) (ArcaneFX-Demo OSX) - 1.1% gleUpdateDeferredState (GLEngine) - 1.0% gleDrawArraysOrElements_IMM_Exec (GLEngine) - 1.0% vm_map_enter (mach_kernel)
Running on the Intel:
- 8.3% pmap_page_protect (mach_kernel) - 6.3% 0x96673d [unreadable] (com.apple.ATIRadeonX1000) - 5.9% Interior::buildPolyList_r(InteriorPolytope&, SurfaceHash&) (ArcaneFX-Demo OSX) - 5.0% vm_map_lookup_entry (mach_kernel) - 4.2% memory_object_recover_named (mach_kernel) - 2.5% ml_set_interrupts_enabled (mach_kernel) - 2.2% 0x18478240 [238B] () - 2.1% 0x9667fa [unreadable] (com.apple.ATIRadeonX1000) - 1.9% gldGetQueryInfo (ATIRadeonX1000GLDriver) - 1.8% 0x966740 [unreadable] (com.apple.ATIRadeonX1000) - 1.7% vm_map_enter (mach_kernel) - 1.6% 0x96e340 [unreadable] (com.apple.ATIRadeonX1000) - 1.4% Interior::renderARB(bool, MaterialList*, unsigned) (ArcaneFX-Demo OSX) - 1.2% gldInitDispatch (ATIRadeonX1000GLDriver)
So it looks like some things that are used heavily on the Intel (vm_map_lookup_entry, vm_map_enter, pmap_page_protect, and a few other things) are barely used on the PPC and seem to take up a lot of processor time on the Intel build. I don't know much about these things, though. Any thoughts?
#4
Short version, IIRC, is if glg_swizzlepixles appears a lot in your shark trace - which is doesn't, in your case, so I presume that's not the problem.
The rest of your stuff... uh, how much memory do you have in your intel mac? Are you suffering a lot of page faults? How much memory do you have on your graphics card in your intel?
Do you get this without using afx?
Gary (-;
04/19/2008 (11:09 pm)
Quote:Er...quick reminder how I would check that?
Short version, IIRC, is if glg_swizzlepixles appears a lot in your shark trace - which is doesn't, in your case, so I presume that's not the problem.
The rest of your stuff... uh, how much memory do you have in your intel mac? Are you suffering a lot of page faults? How much memory do you have on your graphics card in your intel?
Do you get this without using afx?
Gary (-;
#5
The Intel laptop is much newer than the PPC desktop, although it does have less memory. The desktop has 2.5G RAM, the laptop has 2G RAM -- still should be plenty, though. The graphics card in the laptop is better, too -- an ATI X1600 (vs. X800XT on the desktop). Both cards have 256MB of VRAM.
I can also run the game in a larger window on the desktop (1280x960) than on the laptop (800x600), and still get considerably better performance on the desktop -- in some cases, more than double the frame rates.
I'm not sure if I'm getting a lot of page faults, but mostly because I don't know how to tell. But it kind of looks that way from the Shark output.
I've been using AFX for so long now that I don't have a compiled version without it. I could check with a clean TGE and the starter.fps demo, if that would help.
The other thing to remember is that the laptop runs the game really well...when I boot under XP. So it shouldn't be anything specific to the video card or RAM.
04/20/2008 (12:37 pm)
Thanks, Gary.The Intel laptop is much newer than the PPC desktop, although it does have less memory. The desktop has 2.5G RAM, the laptop has 2G RAM -- still should be plenty, though. The graphics card in the laptop is better, too -- an ATI X1600 (vs. X800XT on the desktop). Both cards have 256MB of VRAM.
I can also run the game in a larger window on the desktop (1280x960) than on the laptop (800x600), and still get considerably better performance on the desktop -- in some cases, more than double the frame rates.
I'm not sure if I'm getting a lot of page faults, but mostly because I don't know how to tell. But it kind of looks that way from the Shark output.
I've been using AFX for so long now that I don't have a compiled version without it. I could check with a clean TGE and the starter.fps demo, if that would help.
The other thing to remember is that the laptop runs the game really well...when I boot under XP. So it shouldn't be anything specific to the video card or RAM.
#6
04/20/2008 (12:40 pm)
It's definately your slow graphics card, try upgrading the one in your laptop.
#7
Note that, as above, the laptop is capable of playing the game the best (fastest) on the laptop under Windows XP. The graphics card is definitely capable of handling the game just fine -- not to mention, the laptop can play very graphics-intensive games under both Mac OS X and Windows XP. It can also handle graphics-intensive games better than the desktop in general.
It's this build of TGE-AFX that is just slower than heck on the laptop under Mac OS X.
04/20/2008 (12:48 pm)
Thanks, Tyler....but first off, you can't upgrade graphics cards in Mac laptops, and second, the graphics card in the laptop is definitely better than in the desktop, and is most certainly up to the task.Note that, as above, the laptop is capable of playing the game the best (fastest) on the laptop under Windows XP. The graphics card is definitely capable of handling the game just fine -- not to mention, the laptop can play very graphics-intensive games under both Mac OS X and Windows XP. It can also handle graphics-intensive games better than the desktop in general.
It's this build of TGE-AFX that is just slower than heck on the laptop under Mac OS X.
#8
Definitely worth a try.
Gary (-;
04/20/2008 (3:02 pm)
Quote:I could check with a clean TGE and the starter.fps demo, if that would help.
Definitely worth a try.
Gary (-;
#9
But those 2 things don't matter, break open shark and check whats taking up the chunk of it.
04/20/2008 (4:08 pm)
Before you edited your post, you said that the graphics card was better on the desktop... And yes, you can upgrade the graphics card if you know how... I did it many times.But those 2 things don't matter, break open shark and check whats taking up the chunk of it.
#10
As for upgrading the graphic card, I suppose you could do it if you really know what you're doing, although since nobody I know offers the service or recommends it I can't imagine it's a simple chore. But as you say, that doesn't really matter, since the laptop card runs the game just fine, as long as it's booted into XP.
Shark output from the game is above. I tried running a clean TGE/AFX build with the arcane.fx demo, and got this strange output -- same application and scripts, just running on different computers.
Running on PPC:
Running on Intel:
Not sure what to make of it, or why the output is so different for the same app running on Intel.
Edit: forgot to add, I do get better framerates on the Intel Mac than on the PPC Mac for the TGE/AFX demo.
04/20/2008 (5:45 pm)
Not to argue, but I didn't say the card was better on the laptop (as in the OP, "the laptop is newer, faster, and has a better graphics card than the desktop"), although I suppose you could argue which is the better card (X800XT vs. X1600).As for upgrading the graphic card, I suppose you could do it if you really know what you're doing, although since nobody I know offers the service or recommends it I can't imagine it's a simple chore. But as you say, that doesn't really matter, since the laptop card runs the game just fine, as long as it's booted into XP.
Shark output from the game is above. I tried running a clean TGE/AFX build with the arcane.fx demo, and got this strange output -- same application and scripts, just running on different computers.
Running on PPC:
- 7.0% BitRender::bitTo8Bit_3(unsigned*, unsigned*, int) (ArcaneFX-Demo OSX) - 5.5% TSSkinMesh::updateSkin() (ArcaneFX-Demo OSX) - 3.2% gldInitDispatch (ATIRadeon9700GLDriver) - 2.6% ATIRadeon9700::submit_buffer(unsigned long*, unsigned long, unsigned long) (com.apple.ATIRadeon9700) - 2.5% TerrainRender::renderChunkOutline(EmitChunk*) (ArcaneFX-Demo OSX) - 2.2% BitRender::render_strips(unsigned char const*, int, int, unsigned short const*, Point2I const*, int, unsigned*) (ArcaneFX-Demo OSX) - 2.0% TerrainRender::processCurrentBlock(SceneState*, EdgeParent*, EdgeParent*, EdgeParent*, EdgeParent*) (ArcaneFX-Demo OSX) - 1.8% vm_map_enter (mach_kernel) - 1.5% TerrainRender::fixEdge(ChunkEdge*, int, int, int, int) (ArcaneFX-Demo OSX) - 1.4% PowerInner (libSystem.B.dylib) - 1.3% TerrainRender::allocPoint(Point2I) (ArcaneFX-Demo OSX) - 1.3% Box3F::collideOrientedBox(Point3F const&, MatrixF const&) const (ArcaneFX-Demo OSX) - 1.3% TerrainRender::renderBlock(TerrainBlock*, SceneState*) (ArcaneFX-Demo OSX) - 1.0% gldGetQueryInfo (ATIRadeon9700GLDriver) - 1.0% __memcpy (commpage [libSystem.B.dylib]) - 1.0% glTexEnvi_Exec (GLEngine) - 1.0% gleDrawArraysOrElements_CVA_Exec (GLEngine)
Running on Intel:
- 3.8% 0x23b460 [1.3KB] (ArcaneFX-Demo OSX) - 3.4% 0x4bf50 [1.7KB] (ArcaneFX-Demo OSX) - 3.4% 0x1529cae7 [283B] () - 3.3% 0x1529c110 [290B] () - 2.6% 0x4bd00 [588B] (ArcaneFX-Demo OSX) - 2.4% gldGetQueryInfo (ATIRadeonX1000GLDriver) - 2.4% gldInitDispatch (ATIRadeonX1000GLDriver) - 2.2% 0x40eea340 [unreadable] (com.apple.ATIRadeonX1000) - 2.1% 0x1529c405 [132B] () - 2.0% 0x1529c515 [106B] () - 1.6% 0x21fc80 [12.0KB] (ArcaneFX-Demo OSX) - 1.4% __memcpy (commpage [libSystem.B.dylib]) - 1.3% gleRenderPrimitiveTCLFunc (GLEngine) - 1.3% 0x3314b0 [416B] (ArcaneFX-Demo OSX) - 1.3% 0x1529c611 [157B] () - 1.3% gleDrawArraysOrElements_IMM_Exec (GLEngine) - 1.3% gleUpdateDeferredState (GLEngine) - 1.2% 0x14669870 [8.3KB] (ATIRadeonX1000GLDriver) - 1.2% 0x21c730 [3.1KB] (ArcaneFX-Demo OSX) - 1.1% 0x21da90 [8.5KB] (ArcaneFX-Demo OSX) - 1.1% 0x21d3a9 [1.7KB] (ArcaneFX-Demo OSX) - 1.1% 0x1daeb0 [1.4KB] (ArcaneFX-Demo OSX) - 1.0% 0x1529c4d1 [unreadable] () - 1.0% gldUpdateDispatch (ATIRadeonX1000GLDriver)
Not sure what to make of it, or why the output is so different for the same app running on Intel.
Edit: forgot to add, I do get better framerates on the Intel Mac than on the PPC Mac for the TGE/AFX demo.
#11
So take what's slower, and compare it to what's faster, and what's the difference? :-)
That second trace is because you don't have debug symbols enabled on that build. Compile in debug mode instead to see more useful information there.
Gary (-;
04/21/2008 (9:16 am)
Quote:I do get better framerates on the Intel Mac than on the PPC Mac for the TGE/AFX demo.
So take what's slower, and compare it to what's faster, and what's the difference? :-)
That second trace is because you don't have debug symbols enabled on that build. Compile in debug mode instead to see more useful information there.
Gary (-;
#12
With respect to comparing what's slower and what's faster, I guess there are two ways to look at it:
- the same content (my game) is slower on the Intel Mac than on the PPC Mac. The difference is the engine code.
- the same engine (my TGE/AFX build) runs the starter.afx content faster on the Intel Mac than the PPC Mac, but runs my content slower on the Intel Mac than on the PPC Mac. The difference there is the content.
So now that I've confused myself completely, is it the engine or is it the content?
04/21/2008 (9:30 am)
That's what I thought -- although it's the same application (Release, not Debug), copied over from one machine to the other. Why would I get more information from Shark on the PPC copy than from the Intel copy?With respect to comparing what's slower and what's faster, I guess there are two ways to look at it:
- the same content (my game) is slower on the Intel Mac than on the PPC Mac. The difference is the engine code.
- the same engine (my TGE/AFX build) runs the starter.afx content faster on the Intel Mac than the PPC Mac, but runs my content slower on the Intel Mac than on the PPC Mac. The difference there is the content.
So now that I've confused myself completely, is it the engine or is it the content?
#13
Mh. I'm not sure why it would have happened, but there's effectively two separate binaries inside a universal binary - an intel one and a ppc one. Evidently your PPC one was compiled with symbols, while the intel one wasn't. No idea how you could have managed that using the regular toolchain :-)
Well, that's a good question. I suspect there's something in your content that happens to molest a pathological edge-case in the intel mac code, but I really am not sure. Does a google search for the problem points [from shark] turn up anything useful?
I dunno if Jeff Faust reads this forum, you might be able to get a much more useful answer out of him. Try posting a link to this thread from the AFX forums?
Gary (-;
04/21/2008 (11:19 am)
Quote:Why would I get more information from Shark on the PPC copy than from the Intel copy?
Mh. I'm not sure why it would have happened, but there's effectively two separate binaries inside a universal binary - an intel one and a ppc one. Evidently your PPC one was compiled with symbols, while the intel one wasn't. No idea how you could have managed that using the regular toolchain :-)
Quote:So now that I've confused myself completely, is it the engine or is it the content?
Well, that's a good question. I suspect there's something in your content that happens to molest a pathological edge-case in the intel mac code, but I really am not sure. Does a google search for the problem points [from shark] turn up anything useful?
I dunno if Jeff Faust reads this forum, you might be able to get a much more useful answer out of him. Try posting a link to this thread from the AFX forums?
Gary (-;
#14
My impression is that at least part of the problem had to do with the way the engine was rendering interiors, and the differences in the way it's done on Mac-PPC, Mac-Intel, and XP-Intel. Specifically, it would seem that there are some optimizations that are missing from the Mac-Intel code.
I came across this thread from a little over a year ago (deja vu all over again), where Gary notes that there is an assembly version of some interior code (itfdump.asm) that hasn't yet been incorporated into the Mac build. So I followed his directions and incorporated it. I had to build a separate Intel build for this, since apparently you can't create a Universal binary using this code.
Nevertheless, it compiled fine, I fired it up, and wham -- instant tremendous boost in frame rates. Somewhere from 2-3x higher. Sweet! Or so I thought.
Then something weird happened: the frame rate boost disappeared. It went back to what it was before. For no particular reason I could find. I quit and restarted, rebooted, you name it -- but I couldn't get the frame rate boost back again.
Then at one desperate point I tried changing screen resolution to something different, and I noticed the frame rate boost suddenly reappeared. Strange. Sometimes the same screen resolution would have great frame rates, and at other times it would suck. But what was most interesting is that, when the frame rates were elevated, they still fluctuated tremendously, even when I just sat there not doing anything -- not moving, not panning the camera, nothing, just sitting there. Frame rates would vary second by second, anywhere from 20 to 40 fps at times.
This is interesting because, on the PPC Mac (or in XP), sitting still like that produces very steady frame rates with very little fluctuation -- at most, 1 to 2 fps variation from one moment to the next. Why would so much variation exist on the Intel Mac side?
Here's Shark output using the debug release of that new build, when the game has slow fps:
And here's the output when the frame rates are boosted:
Can't say much other than it looks like the calls that are typical when it's running slow (pmap_page_protect, vm_map_lookup_entry, memory_object_recover_named, and ml_set_interrupts_enabled) take up considerably less time when it's running fast. Now I just have to figure out what that means, unless anyone else here knows...
04/21/2008 (8:43 pm)
So this is what I've uncovered so far.My impression is that at least part of the problem had to do with the way the engine was rendering interiors, and the differences in the way it's done on Mac-PPC, Mac-Intel, and XP-Intel. Specifically, it would seem that there are some optimizations that are missing from the Mac-Intel code.
I came across this thread from a little over a year ago (deja vu all over again), where Gary notes that there is an assembly version of some interior code (itfdump.asm) that hasn't yet been incorporated into the Mac build. So I followed his directions and incorporated it. I had to build a separate Intel build for this, since apparently you can't create a Universal binary using this code.
Nevertheless, it compiled fine, I fired it up, and wham -- instant tremendous boost in frame rates. Somewhere from 2-3x higher. Sweet! Or so I thought.
Then something weird happened: the frame rate boost disappeared. It went back to what it was before. For no particular reason I could find. I quit and restarted, rebooted, you name it -- but I couldn't get the frame rate boost back again.
Then at one desperate point I tried changing screen resolution to something different, and I noticed the frame rate boost suddenly reappeared. Strange. Sometimes the same screen resolution would have great frame rates, and at other times it would suck. But what was most interesting is that, when the frame rates were elevated, they still fluctuated tremendously, even when I just sat there not doing anything -- not moving, not panning the camera, nothing, just sitting there. Frame rates would vary second by second, anywhere from 20 to 40 fps at times.
This is interesting because, on the PPC Mac (or in XP), sitting still like that produces very steady frame rates with very little fluctuation -- at most, 1 to 2 fps variation from one moment to the next. Why would so much variation exist on the Intel Mac side?
Here's Shark output using the debug release of that new build, when the game has slow fps:
- 7.3% Interior::buildPolyList_r(InteriorPolytope&, SurfaceHash&) (ArcaneFX-Demo Debug OSX) - 6.3% pmap_page_protect (mach_kernel) - 6.0% 0x97673d [unreadable] (com.apple.ATIRadeonX1000) - 3.7% vm_map_lookup_entry (mach_kernel) - 3.2% memory_object_recover_named (mach_kernel) - 2.5% ml_set_interrupts_enabled (mach_kernel) - 1.8% 0x976740 [unreadable] (com.apple.ATIRadeonX1000) - 1.8% 0x9767fd [unreadable] (com.apple.ATIRadeonX1000) - 1.6% PlaneF::distToPlane(Point3F const&) const (ArcaneFX-Demo Debug OSX) - 1.6% 0x97aa41 [unreadable] (com.apple.ATIRadeonX1000) - 1.4% gldGetQueryInfo (ATIRadeonX1000GLDriver) - 1.2% InteriorPolytope::intersect(PlaneF const&, Point3F const&, Point3F const&) (ArcaneFX-Demo Debug OSX) - 1.0% gldInitDispatch (ATIRadeonX1000GLDriver)
And here's the output when the frame rates are boosted:
- 11.6% Interior::buildPolyList_r(InteriorPolytope&, SurfaceHash&) (ArcaneFX-Demo Debug OSX) - 2.6% pmap_page_protect (mach_kernel) - 2.4% PlaneF::distToPlane(Point3F const&) const (ArcaneFX-Demo Debug OSX) - 2.0% 0x158f7240 [190B] () - 1.9% gldGetQueryInfo (ATIRadeonX1000GLDriver) - 1.8% InteriorPolytope::intersect(PlaneF const&, Point3F const&, Point3F const&) (ArcaneFX-Demo Debug OSX) - 1.7% 0x97673d [unreadable] (com.apple.ATIRadeonX1000) - 1.6% 0x97e340 [unreadable] (com.apple.ATIRadeonX1000) - 1.6% gldInitDispatch (ATIRadeonX1000GLDriver) - 1.6% vm_map_lookup_entry (mach_kernel) - 1.5% Vector<InteriorPolytope::Edge>::last() (ArcaneFX-Demo Debug OSX) - 1.5% Vector<InteriorPolytope::Edge>::push_back(InteriorPolytope::Edge const&) (ArcaneFX-Demo Debug OSX) - 1.4% memory_object_recover_named (mach_kernel) - 1.4% Vector<InteriorPolytope::Edge>::increment(unsigned) (ArcaneFX-Demo Debug OSX) - 1.2% 0x158f7110 [290B] () - 1.1% Vector<InteriorPolytope::Edge>::operator[](int) (ArcaneFX-Demo Debug OSX) - 1.1% Vector<InteriorPolytope::Edge>::operator[](unsigned) (ArcaneFX-Demo Debug OSX) - 1.0% Vector<InteriorPolytope::Vertex>::operator[](unsigned) (ArcaneFX-Demo Debug OSX) - 1.0% Vector<InteriorPolytope::Vertex>::operator[](int) (ArcaneFX-Demo Debug OSX) - 1.0% ml_set_interrupts_enabled (mach_kernel)
Can't say much other than it looks like the calls that are typical when it's running slow (pmap_page_protect, vm_map_lookup_entry, memory_object_recover_named, and ml_set_interrupts_enabled) take up considerably less time when it's running fast. Now I just have to figure out what that means, unless anyone else here knows...
#15
Actually the X1600 is absolutely not better than the X800XT, have a look at this GPU Comparison chart:
http://www.tomshardware.com/reviews/gaming-graphics-cards,1805-6.html
You'll find the x1600 well below the x800xt.
You seem to be expecting desktop performance from laptops, laptop chipsets are by design always slower than "comparable" desktop versions, wether it be CPUs or GPUs.
Of course this doesn't account for the differences you are seeing with different OSes on the same laptop.
However the fact thay you are running this on a laptop could be the issue, pherhaps it's some laptop feature kicking in? maybe the CPU is beeing slowed down because of heating or some such?
Would explain the fact that the FPS differs for periods while you aren't moving.
04/22/2008 (2:43 am)
"Not to argue, but I didn't say the card was better on the laptop (as in the OP, "the laptop is newer, faster, and has a better graphics card than the desktop"), although I suppose you could argue which is the better card (X800XT vs. X1600)."Actually the X1600 is absolutely not better than the X800XT, have a look at this GPU Comparison chart:
http://www.tomshardware.com/reviews/gaming-graphics-cards,1805-6.html
You'll find the x1600 well below the x800xt.
You seem to be expecting desktop performance from laptops, laptop chipsets are by design always slower than "comparable" desktop versions, wether it be CPUs or GPUs.
Of course this doesn't account for the differences you are seeing with different OSes on the same laptop.
However the fact thay you are running this on a laptop could be the issue, pherhaps it's some laptop feature kicking in? maybe the CPU is beeing slowed down because of heating or some such?
Would explain the fact that the FPS differs for periods while you aren't moving.
#16
It is well understood that laptops generally don't provide the same performance as desktops, but I do expect at least similar performance with TGE from a laptop that is several years newer than the desktop and performs better than the desktop in practically every way. The laptop is known to play other high-end graphics games very well, and in many cases better than the desktop. And, as you mentioned, the laptop plays the game just fine (and significantly better) under one operating system than under another.
I do appreciate your position, but I can't find any reason to believe there is anything particular to the underlying hardware that would cause this issue.
Your other points are well taken. I don't know if the CPU is being slowed down at all, but I do have it set to best performance with the laptop plugged in. One thing that was pointed out to me is that the Mac OS X system uses some VRAM for its resources, whereas XP does not, and maybe this is reducing the available VRAM for the game while on the laptop. But that doesn't explain why it runs well on the desktop, as both the X800 and X1600 have the same amount of VRAM.
What could explain this is issues with Apple's ATI drivers. It sounds like the game is somehow believing it is out of VRAM, or something similar; switching to fullscreen mode seems to reset everything and correct the frame rates. Apple's ATI driver for the X1600 may be lousy compared with the driver for the X800. That would be a real kick in the pants.
04/22/2008 (9:00 am)
Your point is taken, as I said you can argue which is the better card; that's not what I was refuting. Nevertheless, the laptop card should be more than adequate for the task.It is well understood that laptops generally don't provide the same performance as desktops, but I do expect at least similar performance with TGE from a laptop that is several years newer than the desktop and performs better than the desktop in practically every way. The laptop is known to play other high-end graphics games very well, and in many cases better than the desktop. And, as you mentioned, the laptop plays the game just fine (and significantly better) under one operating system than under another.
I do appreciate your position, but I can't find any reason to believe there is anything particular to the underlying hardware that would cause this issue.
Your other points are well taken. I don't know if the CPU is being slowed down at all, but I do have it set to best performance with the laptop plugged in. One thing that was pointed out to me is that the Mac OS X system uses some VRAM for its resources, whereas XP does not, and maybe this is reducing the available VRAM for the game while on the laptop. But that doesn't explain why it runs well on the desktop, as both the X800 and X1600 have the same amount of VRAM.
What could explain this is issues with Apple's ATI drivers. It sounds like the game is somehow believing it is out of VRAM, or something similar; switching to fullscreen mode seems to reset everything and correct the frame rates. Apple's ATI driver for the X1600 may be lousy compared with the driver for the X800. That would be a real kick in the pants.
#17
That's all I'm going to say, this has been humbling enough.
04/22/2008 (10:41 am)
$pref::openGL::allowCompression.That's all I'm going to say, this has been humbling enough.
Torque Owner Gary "ChunkyKs" Briggs
Along the same lines, try breaking open Shark on the intel mac and see what's burning the most CPU.
Gary (-;