View Single Post
Unknown Soldier
(09-19-2010, 11:52 PM)
Unknown Soldier's Avatar
Okay, as promised earlier in the thread:

A Brief Performance Analysis of FFXIV Open Beta Client and Multi-Threading

This little analysis was inspired by a guy's fantastic OCing performance analysis on his blog. If you haven't read it, I suggest you go there and have a look. It will be very useful if you are planning a computer upgrade in the near future when FFXIV runs like it's constipated on your current machine. :lol

Test machine:
Intel Core i7-950 OCed to 4.01ghz
Gigabyte GA-X58A-UD3R
6GB G.Skill "Ripjaws" series 3 x 2GB DD3-1600
eVGA GeForce GTX 470 SC OCed to 760/1520/1850
onboard Realtek ALC889 audio
Windows 7 Pro x64

Window Size: 1920x1200 (fullscreen)
Buffer Size: Resolution
Multisampling: 8xQ MSAA
Shadows: Highest
Textures: High
Texture Filtering: Highest
AO: Off
DoF: On

HyperThreading was left on! Core i7-800/900 series have 4 physical cores and 8 virtual ones when HT is enabled!

As a game with a PC/PS3 platform target, we can expect FFXIV to be as pervasively multi-threaded as Squenix can manage, since CELL processor consists of 1 actual general-purpose CPU, the PPE, and 8 special computation cores, the SPEs. (Of which the PS3 can actually use 6 for games, 1 is disabled in hardware initially to increase yields, and 1 is reserved for exclusive use by the hypervisor.) So if we are targeting a console with 7 hardware threads (1 PPE + 6 SPEs), we can expect FFXIV to spawn at least 6-7 hardware threads when it's busy. So does Squenix know how to program multi-threaded game clients? Let's take a look!

Scene 1 - Crystal Solitude

This scene is just me standing alone in front of the city crystal in Limsa Lominsa. There is no one else on screen because it was late at night and beta is almost over. This is a good test of the game's base rendering engine.

And here's how it looked:

So, we can see that when the game is doing nothing but rendering an empty scene, it's using only 4 threads. We can see my CPU is very bored here, it's blasting out 60 fps in this scene and pegging the GPU at 100% usage.

Scene 2 - Unexpected Company

This scene is me standing in front of the LL Adventurer's Guild. Again, it was late at night, so not very many people are on-screen.

And here's the stats:

Still not very interesting, you might be seeing the OS as the 5th thread. Windows 7 is smart enough to park heavy-use threads on loaded cores and do it's own business on an unloaded core if you are loading the CPU heavily, which might be what we are seeing here. Again, the framerate was pegged at 60fps and the GPU was running full-tilt.

Scene 3 - Camp Crystal Lake

This scene is me standing in front of Camp Bearded Rock. There are still a good number of people here, even though it's late at night and in the beta.

Okay, NOW we're seeing something here! I looks like when you're out in the field at least and the game has to show fights and mobs, it's actually spawning at least 6-7 threads! I don't know what these threads are doing or how useful they actually are, but it seems like this game is thread-optimized for a machine which has 7 hardware threads, you know, like a PS3. :lol The game was running around 33fps in this scene but the GPU was still pegged at 100%, suggesting I am heavily GPU-limited at this resolution.

I went out and killed a dodo to check my framerates and I tried to watch the status as well, but obviously it was kind of hard to take a picture of it while fighting. The game did maintain some activity across all 8 virtual cores during the fight.


Now, does this mean you should run out and buy a Core i7 and leave HT on? No, I don't think so. From the blogger's analysis and mine, you can see the game becomes severely GPU-limited anyways once you cross a certain CPU performance threshold. There was no point during my analysis where the GPU usage dropped below 99% while standing still, you can see that in my MSI Afterburner graphs. Obviously when I'm moving and the game is loading, it hitches and hiccups a lot and then GPU usage temporarily drops while the CPU is busy thrashing the hard drive. (I need to get a fucking SSD for this game! :lol)

So I think you can just as happily buy a Core i5-700 series which is the same as Core i7 but with HT disabled in hardware by Intel and get the same level of performance. 8 virtual HT threads still maps to 4 physical cores and you need to be near 100% utilization of all 8 threads, which FFXIV clearly isn't anywhere near, before you get any real benefit from HT's hardware-managed multi-threading versus just letting the operating system manage threads. Most games are like this, actually. HT is great for things like video encoding and other tasks which peg a CPU at 100% on all threads. Games simply don't do this, especially at high resolutions when most people are GPU-limited anyways.

Many games designed for consoles which are heavily multi-threaded rarely stress the CPU to anywhere near 100% on the PC versions. We saw that with GTA4 PC version, and we are seeing it with FFXIV. It's not easy to write multi-threaded game code for a platform with an infinite number of variations like the PC, whereas you have a single hardware target on a true current-gen console like the PS3 or 360. It's not hard to imagine FFXIV using 100% of the CELL processor, but here we can see my CPU is either moderately to very bored depending on the situation and theoretically my old Core 2 Quad Q6600 could have run the game well if it were well-optimized for PCs and could actually peg the CPU at 100% instead of what we see in my analysis and his. In reality my old Q6600 would be getting 12fps where I was comfortably getting 28fps with this Core i7. There's a lot of optimization work which can be done to make FFXIV run better on something less than an OCed Core i7, it's really a question of how fast Squenix can do it because right now it crawls on machines that most people would consider pretty powerful otherwise, and most people aren't going to spend hundreds of dollars to upgrade their PCs to play this game. (They could buy a PS3 instead with the same money! :lol)


So there you have it. If you are planning an upgrade to your computer for this game, go cheap. Forget HyperThreading, just get a Core i5-750/760 and just OC the shit out of it. Focus instead on getting at least a GeForce GTX 460 or better if you want to run at 1080p+ resolution, you're going to be GPU-limited at high resolutions. If you are buying a laptop for this game, well...don't. This game demands a powerful CPU and powerful GPU because it's not well-optimized and most laptops short of the $2,500 Alienware laptops will not be up to snuff for this game. If you spend $2,500 for a shitty Alienware laptop, then I pity you.

edit: spelling, make images smaller