A year has passed since Nvidia announced plans to port the PhysX programming interface to its CUDA architecture, and it’s been about six months since we last spent quality time looking at the fruits of its labor. Industry support for Nvidia’s PhysX has been slow to grow, but after a highly visible recommitment to the endeavor at last month’s Consumer Electronics Show, Nvidia has made it clear that PhysX will remain a key selling point for its graphics cards. And thanks to EA DICE’s million-seller Mirror’s Edge, Nvidia arguably has its highest-profile title yet with support for GPU-accelerated PhysX. I’d say we’re about due for another look at the technology.
We’ve spent a lot of time talking about Mirror’s Edge. If you’ve missed our other coverage, Cyril got the hype train rolling when the game was first announced, after which Geoff got his hands on the Xbox 360 version and shared his thoughts on the experience. Most recently, Cyril played through the PC release and had a blast—so much fun, in fact, that he was compelled to discuss the game again in our latest podcast. And after all of that, we’re still not done talking about it.
I won’t discuss the premise or merits of the gameplay in too much depth—you can check out some of our earlier coverage for that. Suffice to say, Mirror’s Edge is a first-person 3D platformer with a small dose of combat to mix things up a bit. As in any good platformer, this game’s environments present as much danger as the bad guys that inhabit them. The majority of your time is spent exploring your surroundings and figuring out how best to navigate them. Combined with the first-person parkour aspect, it becomes apparent very quickly that the set pieces are what drive gameplay.
Mirror’s Edge was initially going to be a simultaneous cross-platform release for the 2008 holiday season, but the PC version was delayed, perhaps partly to incorporate PhysX effects. Xbox 360 and PlayStation 3 owners got their hands on the game first, but like most Windows releases, Mirror’s Edge PC also brings sharper visuals and more flexible controls.
So, what does PhysX bring to the table in Mirror’s Edge? The designers at EA DICE took full advantage of the PhysX API throughout the single-player campaign, utilizing the extra horsepower of GPU-accelerated physics to drive a number of visual effects in the game world. Here’s what you can look forward to:
- Glass — There’s a lot of it in Mirror’s Edge, and more often than not, it’s being shattered. With PhysX enabled, window panes send chunks of glass flying realistically through the environment when they break. Shards will react to the player as well as enemies, and if you dive through a window, you can expect to see pieces of glass follow you. Without PhysX, breaking a window triggers the same old type of animation you’ve seen in shooters for over a decade.
- Cloth — Though not as prominently featured as their glassy counterparts, you’ll find tarps, banners, and window shades just waiting to be shot throughout the game. As they’re perforated by bullets, they eventually become little more than tatters that drift to the ground. And of course, any large vehicles like helicopters or trains will impart their presence upon soft objects thanks to the simulated wind. In most cases, disabling PhysX will simply remove these soft bodies from the environment.
- Smoke — PhysX brings fully simulated smoke to Mirror’s Edge. Unlike the static smoke animations you’re used to seeing, here you’ll find fluid dynamics in action. Both the player and enemy characters will leave trails through smoke, and like the soft bodies, smoke will react to wind sources. Once again, persistent smoke doesn’t exist in the game world when PhysX effects are disabled.
- Debris — Typically, when a bullet ricochets off of the environment, you get a stock animation that might consist of dust or sparks, depending on what it hits. With PhysX, debris will go flying through the environment, realistically bouncing off of walls and characters.
Of course, all of these promises raise a couple of questions: are the visual improvements noticeable and are they worth the performance trade-off? That’s what we aim to find out.
Our testing methods
Before we can free-run to the pretty pictures and performance graphs, there’s a bit of housekeeping to take care of first. As always, we did our best to deliver clean benchmark numbers. Tests were run at least three times, and the results were averaged.
Our test system was configured like so:
|Processor||AMD Phenom 9900 Engineering Sample 2.6GHz (TLB patch disabled)|
|System bus||HyperTransport 4.0 GT/s (2.0 GHz)|
|Motherboard||Asus M3A32-MVP Deluxe
|Chipset drivers||Microsoft 6.0.6001.18000|
|Memory size||4GB (4 DIMMs)|
|Memory type||2x 2GB Corsair XMS2 DDR2-800 SDRAM|
|CAS latency (CL)||5|
|RAS to CAS delay (tRCD)||5|
|RAS precharge (tRP)||5|
|Cycle time (tRAS)||18|
|Audio||Creative Sound Blaster X-Fi Platinum|
EVGA GeForce 8800 GTX
GPU: 625MHz, Shaders: 1465MHz, Memory: 975MHz
with ForceWare 181.22 WHQL drivers
|Hard drive||Western Digital Raptor 74GB SATA|
|OS||Windows Vista Ultimate x64
|OS updates||Service Pack 1, latest updates at time of writing
The test system’s Windows desktop was set at 1920×1200 in 32-bit color at a 60Hz screen refresh rate. Vertical refresh sync (vsync) was disabled.
We used the following versions of our test applications:
The tests and methods we employ are usually publicly available and reproducible. If you have questions about our methods, hit our forums to talk with us about them.
How does it look?
Since PhysX effects are used almost exclusively for eye-candy in Mirror’s Edge, it makes sense to go through some before and after images of the GPU-accelerated physics in action. First up is a demonstration of the simulated glass, along with some soft body effects on the window shades:
Notice that without PhysX, broken glass is no longer persistent, instead replaced by a standard shattering animation. Also, the window shades don’t even exist in the game world without PhysX, making the hallway that much less visually appealing. One final item to point out: those little black specks you see in the center of the PhysX image are an example of the simulated debris from ricochets, which is otherwise nonexistent without GPU-accelerated physics enabled.
Next, let’s have look at the PhysX cloth effects:
Many soft bodies simply don’t appear in the environment without PhysX enabled, as evidenced by the blue tarp. The tarp deforms and eventually turns into tatters as the helicopter shoots through it to hit the player. In the first image, you can see a pre-cooked puff of debris as a bullet ricochets, while the second image has simulated sparks bouncing around.
Finally, here are the smoke effects Mirror’s Edge provides with PhysX:
Smoke isn’t visible all that often in Mirror’s Edge, but its rare appearances are generally used to great effect. In this instance, a large amount of mist emanates from the water as the player slides down a waterfall. The whole scene looks a tad bland without PhysX, but the simulated smoke ups the immersion level.
PhysX visual goodness looks best while in motion, however, and screenshots can’t tell the whole story. Thankfully, Nvidia provided a demonstration video from a variety of locations within Mirror’s Edge, which you’ll find embedded below. I’ve gone to the extra effort of embedding the HD version of the clip, so don’t be afraid to click the full screen button. Go on—you know you want to.
The video showcases the full gamut of extra eye candy scattered throughout Mirror’s Edge courtesy of PhysX. Pay particular attention to the smoke and cloth effects, because those are both the hardest to represent in still images and the most interesting to watch in action.
Now, we come to the performance considerations of GPU-accelerated PhysX. We tested three different settings for each benchmark, although the most relevant numbers are with PhysX either enabled or disabled altogether. Just out of curiosity, I included numbers for PhysX without hardware acceleration, which essentially leaves the CPU to handle all the physics calculations in software. It wasn’t pretty, as you’ll soon find out.
Mirror’s Edge caps maximum frame rates by default, so we disabled that cap for these exercises. All in-game detail levels were set to their highest values, except for antialiasing, which was disabled.
EA DICE included a timedemo with the retail version of Mirror’s Edge (accessible by adding “-FlybyFlight” to the shortcut’s path), so it’s as good a place as any to start our benchmarking. The demo pans the camera through segments of the Flight chapter from the single-player campaign, specifically between checkpoints C and D. The demo begins with a helicopter shooting out a few windows while several enemies move through the corridor. We then move outside, with the camera zipping over a few rooftops and providing large-scale shots of the city.
On paper, GPU-accelerated PhysX looks like it induces a pretty nasty performance hit. Drops of 30% for minimum frame rates and 34% for average frame rates are northing to scoff at, but it’s important to note that the game remains playable. Even when the action reaches its most heated points, minimum frame rates stay above 30 FPS, and averages push toward 60. The median low of 3 FPS for PhysX running on the CPU is no anomaly—the game runs just fine until a pane of glass breaks or a bullet ricochets. Afterward, Mirror’s Edge becomes an unplayable mess. Do yourself a favor and don’t turn PhysX on without hardware acceleration to back it up.
Unfortunately, after viewing the timedemo a few times, I became disappointed in its effectiveness as a benchmark representative of the entire game. There’s just not a whole lot going on. The first 15 seconds are packed with PhysX effects (shattered glass and window shades being blasted) but the remaining 45 seconds are rather dull, and frame rates seem to reflect that. Performance results from the timedemo were a bit better than what I experienced while playing through other segments of the game, too, so I set out to find a better place to test the performance impact of PhysX effects.
Thankfully, there’s no shortage of frantic action in Mirror’s Edge, typically beginning with you looking down the barrel of a gun. I found that the Heat chapter provides possibly the best opportunity for PhysX to truly shine (and to punish a system). Beginning with checkpoint B, you find yourself in the lobby of an office building with four stories to work through and dozens of panes of glass between you and enemy fire. A number of banners hanging from the ceiling occasionally get caught in the crossfire, ensuring that breaking glass isn’t the only PhysX simulation taking place.
We ran this test by playing through the opening section of Heat B, where Faith works her way up the lobby floors and eventually out of the building, before escaping along the roof. Since manual playtests are less precisely repeatable than timedemos, we played through this sequence five times for each setting and compiled the results.
Now that’s more like it! These numbers reflect my experience with the rest of the single-player campaign much more closely. There’s a far more noticeable 48% drop in the median low frame rate, accompanied by a 40% decrease in the overall average, when GPU-accelerated PhysX effects are enabled. The most intense moments managed to pull the frame rate under 30 FPS, but not by much. Let’s not forget, though, that we’re running a GeForce 8800 GTX that’s over two years old at a high resolution with in-game detail settings cranked. You have plenty of room to tone down some of the eye candy if 26 FPS is too choppy for you. It wasn’t an issue for me—I’m happy as long as I can pull off twitch wall-jumps.
Once again, enabling PhysX without any form of hardware acceleration results in an unplayable slide show as soon as the bullets start flying.
Perhaps the most important consideration concerning PhysX in Mirror’s Edge is that it remains a purely visual effect, which is presumably why you can find the PhysX toggle lumped in with the other video options. Hardware physics simulations generally don’t affect gameplay, meaning you can’t hurt yourself or fall on broken glass, and cloth and smoke won’t obscure you from enemies. If you’re looking for the breakthrough physics gameplay found in titles like Psi-Ops and Half-Life 2, you won’t find it here in Mirror’s Edge.
To be fair, though, that’s not really the point of PhysX—not yet. The goal here is to replace many of the old pre-cooked animations with physical simulations. Is it a crazy idea? Not really. Remember the first time you shot an enemy and his body did a ragdoll slump to the floor, rather than playing through a stock death animation? I spent countless hours afterward finding hilarious locations to kill enemies, whether it involved ledges, stairs, or a myriad of other environmental hazards. It was a great moment for gaming, one that PhysX replicates by bringing that same visceral interaction to a multitude of objects in the game world. The name of the game is immersion, and PhysX helps sell the experience.
Unfortunately, there is a substantial performance trade-off—one larger than those accompanying most other visual settings. In the great balancing act of resolution, antialiasing, anisotropic filtering, texture quality, and shader effects, PhysX may require some larger sacrifices than you’re used to. As a side-effect of my frequent console gaming, I’ve grown accustomed to playing at lower resolutions, so I’ll happily make that sacrifice for a bit more action on the screen. Based on where your preferences lie, though, you might not consider PhysX viable without a video card upgrade (like, say, if you prefer high-res visuals with antialiasing or demand a solid 60 frames per second). However, do note that these tests were done on GPU technology that’s well over two years old. Newer video cards might see smaller performance hits.
With the number of computers that support hardware PhysX continually on the rise, the chicken-and-egg scenario between hardware and software penetration is rapidly disappearing. Developers have fewer excuses for not supporting PhysX, and Mirror’s Edge demonstrates how a AAA-title can use it to good effect. PhysX’s future is looking better every day, but it seems doubtful that a blockbuster title will ever require the technology. Not only do AMD graphics cards still lack PhysX support, but cross-platform development is par for the course nowadays, and not all current-gen consoles will be able to handle PhysX effects designed to run on desktop GPUs. The technology may be relegated to the realm of visual effects, but based on what we’ve seen from Mirror’s Edge, it might not need to strive for more.