PPC vs. intel performance?

Hello. I'm not sure how "scientific" the measures I'm using are, but I wanted to ask before I continue evolving my current design.



I've been developing my current game under OS X and it seems to work reasonably well. The game itself is graphically simple, only using basic geometries at this point, though it does use jmephysics and my custom audio implementation.



Under OS X, framerates seem to hover at around 60, though they occasionally dip into the 40s. On the PC, both under XP/Linux, they're over 200, sometimes over 300. My PPC is the last-generation mac mini, 1.4 GHz. My PC is a 1.5 GHz celeron.



I know that MHz/GHz between architectures isn't an equal comparison. I also know that PPCs have historically not been good gaming platforms. The mac is maxed out at a gig of RAM, the PC has 512 megs and load on each at a glance is comparable–that is, not excessive.



This is a concern for me now because I recently experimented with making my audio run in another thread, because after necessary changes and lots of optimizations my framerates were routinely dropping into the 30s on the mac. After having introduced this thread, they rose back into the 50s/60s, but the FPS under XP is still reported as 200+, 300+ after this change. Unfortunately, my former 200+ Linux framerates have dipped to a meager 5. Because of this massive difference in performance, and because of this odd Linux behavior, I'm thinking that threading isn't perhaps the way to go, and that maybe JME/LWJGL behaves differently under OS X, or that the PPC is just an absolutely horrible platform for gaming. Is the FPS metric not valid, though, or am I missing something else? I could understand if the PC FPS were somewhat higher–90s or low hundreds–but 200+? 300+? If there's a way to attain even a third of that on the mac then I can easily return to a single-threaded model, so if there's something I might do then please let me know.

Is it possible your PPC card settings are set to force vsync, thus capping your fps at 60?  Also, your graphics card is going to account for a lot even in a simple scene.  Next, are you running different versions of the jvm?  Finally, for your Linux 5FPS issue, check how friendly your threads are… (ie, do they yield and sleep, etc.)

renanse said:

Is it possible your PPC card settings are set to force vsync, thus capping your fps at 60?

LWJGL is not far from shipping 1.0 final as I understand it…  I'm sure we'll switch to that when it's out.



It seems the last of the PPC-mini's have an ATI Radeon 9200, not an integrated chipset (afaik these don't exist for PPC macs) That's a pretty old card though…

I personally use lwjgl's b3 on my mac, I can't recall why, but it had something to do with performance (although I thought it was applet related…  you're not doing applets are you?)  We have been slow to update to the latest lwjgl this time, but I imagine we will when we release .12

Latest PPC Mac Mini has:



CPU 1.25/1.42 GHz

FPU: integrated

Bus Velocity: 167 MHz

ROM: 1 MB ROM + 3 MB toolbox ROM loaded into RAM

RAM: PC2700 SDRAM

RAM min velocity: 333 MHz

RAM slot: 1

RAM max: 1 GB

Level 1 Cache: 32 kB data, 32 kB instruction

Level 2 Cache: 512 kB on-chip, 1:1



Video

Video Card: ATI Radeon 9200 4X AGP

VRAM: 32 MB

Max Resolution: 24 bit, 1920x1200 (DVI) 1920 x 1080 (VGA)



Storage

Hard Disk: 40/80 GB (2.5")

ATA Bus: Ultra ATA-100

Optical Drive: 24x/24x/16x/8x CD-RW/DVD-ROM



If you pay attention to some basic features like the amount of Video RAM, the velocity of the AGP slot, the velocity of the system bus the use of the ROM, the type of RAM, the cache size… You see that Mac Mini is not exactly the best computer ever produced to run 3D VideoGames.



I am a Mac fan, but to really test a modern 3D Engine you need something more: at least a iMac with a ATI Radeon installed or a Power Book with ATI Mobility.

Well, it may not be the greatest system, but I've noticed increased performance with LWJGL trunk–the game seems to run a bit more smoothly and the framerate averages somewhat higher and more reliably (I.e. no sub-20 dips.) I noticed that 1.0B4 was released and tried it, but experienced the same degraded performance. So either trunk isn't being used for 1.0b releases, or PPC optimizations of some sort made their way in during the last month or so. I suppose there's also a third option I've not considered, but I'm just content that the performance seems better and haven't done any research into it. :slight_smile:

Profiling time I'd guess…