Original Link: http://www.anandtech.com/show/1549
Half Life 2 GPU Roundup Part 2 - Mainstream DX8/DX9 Battleby Anand Lal Shimpi on November 19, 2004 6:35 PM EST
- Posted in
If you haven't read Part 1 of our Half Life 2 GPU Roundup, click here to read it before continuing on with this article.
The golden rule of Half Life 2 is this – regardless of what sort of graphics card you have (within reason), the game will run well, but at varying levels of image quality. Here’s an example: in our at_canals_08 benchmark at 1280 x 1024, the ATI Radeon 9700 Pro averages 54.2 frames per second. A GeForce4 MX440, averages 45.6 frames per second - pretty close considering the 9700 Pro was one of ATI's most powerful GPUs and sold for $400, and the GeForce4 MX is basically a GeForce2 MX. Now both of these cards were run at their maximum detail settings, but here’s where the two cards differ: the best image quality settings the GeForce4 MX can achieve are significantly lower than what the Radeon 9700 Pro can achieve. It is this type of situation that lays the foundation for our comparison here today.
When it comes to developing games, the biggest thing publishers look for are minimum system requirements. The lower the minimum system requirements, the more games publishers can sell. But the problem with really low minimum system requirements is that you end up with a game that doesn’t look too great on higher end hardware. Valve has spent a great deal of time ensuring that multiple rendering paths were included with Half Life 2 to not only offer great performance on low end graphics cards, but also to offer spectacular image quality on high end GPUs. The three codepaths that we will be looking at today are Valve’s DirectX 7, DirectX 8/8.1 and DirectX 9 paths in Half Life 2.
All of the GPUs we compared in Part 1 of our Half Life 2 performance guides not only default to the DirectX 9 codepath, but also perform very well under it. We will show a comparison between the DX9 and DX8 codepaths shortly but rest assured that if you can run Half Life 2 in DX9 mode then you definitely should as it offers the best image quality you can get.
Half Life 2 performs a system-wide autodetect that will automatically select the best rendering path and image quality settings for your hardware. You can find out which rendering path you are using by looking at the video options control panel within Half Life 2:
The Hardware DirectX level field indicates what rendering path you are currently using. You can specify alternate rendering paths by using the following commandline switch: -dxlevel xx, where xx is 90 for DirectX 9, 81 for DirectX 8.1, 80 for DirectX 8.0 and 70 for DirectX 7.0. You can specify whatever DX level you'd like, but if your hardware doesn't support it you won't get any of the benefits of it. For our tests here today we used the DX9, DX8 and DX7 rendering paths. When possible we used the DX8.1 rendering path.
The point of this article is to compare both the image quality and the performance of the more mainstream DirectX 8 and DirectX 9 GPUs, and what better way to start than by looking at the difference in image quality between the DX8 and DX9 codepaths...
DirectX 9 vs. DirectX 8: Image Quality
Remember ATI’s Shader Day last year where Valve announced that NVIDIA’s DirectX 9 hardware should be treated as DX8 hardware and nothing more? Well, things haven’t really changed – in our tests, NVIDIA’s GeForce 5900XT was between 50 and 72% slower in DX9 mode than in DX8 mode. In fact, the 5900XT is so slow in DX9 mode that ATI’s $80 Radeon X300 SE actually posts significantly higher average frame rates. So if you own a NV3x class GPU, you are pretty much excluded from running Valve’s DirectX 9 codepath. What, then do you lose by going down to the DirectX 8.1/8.0 codepaths?
The first thing we wanted to check was the flashlight shader – how different did it look from DX9 to DX8? The default image below is the DX9 image, mouse over the image to see the flashlight shader rendered using Valve’s DX8 path:
Using the DirectX 9 codepath, the water in Half Life 2 is so much more realistic. You can download full uncompressed versions of these images here.
Overall, the move from DX9 down to DX8 isn’t horrible; while it does reduce some of the appeal of Half Life 2, the game still looks incredible in DX8 mode. There are some issues with forcing NV3x GPUs to run in DX9 mode mainly involving the water, but as you will see on the coming pages, if you've got a NV3x you're not going to want to play in DX9 mode.
DirectX 9 Performance Impact
Now that you've seen what improvements Half Life 2's DX9 path can give you, let's take a look at the price to pay for some of those impressive visual effects. In order to measure the impact of the DX9 path we did the following: ran benchmarks using both the DX8 and DX9 paths, then took the percentage decrease in performance seen by going to DX9. We then averaged the percentage decrease across all five of our custom Half Life 2 benchmarks, per card, per resolution. We will look at actual performance numbers shortly, but this is just to give you an idea of what's to come:
At 800 x 600 the game is mostly CPU bound on cards like the Radeon 9600XT, thus the performance drom from DX8 to DX9 is quite small. Even on cards like the X300 and the Radeon 9550 the performance hit isn't too bad at less than 20%. But here's the kicker, the GeForce 5900XT sees almost a 60% drop in performance by going to DX9 mode. This type of a performance drop should be relatively consistent across the entire NV3x line (e.g. FX 5900 Ultra, FX 5600, etc...).
At 1024 x 768 now all of the GPUs are in double digit performance losses, but even the GeForce 6200 with its 25% performance hit is nothing compared to the 5900XT which incurrs a 65% performance hit when going to DX9.
At 1280 x 1024 things get just a little worse, but you should get the picture by now - the GeForce FX line does not perform well as a DX9 part under Half Life 2.
You will undoubtedly see these statistics reflected in the actual performance of the 5900XT in the coming pages, but basically if you are a NV3x GPU owner you will want to run Half Life 2 in DX8 mode and not DX9 mode.
Now let's take a look at how the rest of the GPUs perform in both DX8 and DX9 modes. For these tests we used the exact same drivers and platforms as our first article, just with different video cards so the numbers are comparable.
Battle in the Canal
Our first benchmark is packed full of just about all of the stressful elements you will encounter throughout Half Life 2. The demo starts aboard a boat driving in a tunnel before making a splash into a wide open body of water. The boat is piloted over to the shore where the player dismounts and heads inside for some action.
While inside the flashlight is used to illuminate dark areas and the player encounters a few firefights before heading upstairs to the outside. While outside (and while being pursued by a helicopter) the player encounters a few enemies on his way into a warehouse. The demo concludes inside the warehouse.
We created this demo because it incorporates just about everything – water, the flashlight, a vehicle, engaging enemies indoors as well as outdoors and sunlight. Since we’re dealing with all very capable cards here, let’s first look at performance at 1280 x 1024. Remember that we used the highest detail settings with the exception of anisotropic filtering and antialiasing, which were both disabled for this test (we will look at their impact on image quality/performance later on in this review).
We’ve already looked at the performance of the Radeon 9700 Pro and the Radeon 9800 Pro, those cards are only included so you have a way of tying the performance of these GPUs to the ones we compared in Part 1 (the numbers are comparable).
The non-Pro Radeon 9700 does very well, as does the Radeon 9600XT. If you look at the performance difference between the 9550 and the 9600XT you should have a good idea about how intermediate cards like the Radeon 9600 Pro should perform.
The GeForce FX 5900XT performs absolutely horribly here as you can expect.
The resolution scaling graph is particularly important here because not all of these cards are best suited for 1024 x 768. ATI’s Radeon X300 is particularly interested because it actually performs relatively well at 800 x 600 (as does its competitor – the GeForce 6200). Remember, we’re looking at DirectX 9 performance here and even the $80 X300 SE is playable at 800 x 600. Not bad at all.
Next up we look at DirectX 8 performance, for these graphs we’ve taken out the 9700 Pro and 9800 Pro as you’d have no reason to run either of those cards in DX8 mode.
The Radeon 9700 and the 9600XT continue to do extremely well here but this time around, the GeForce FX 5900XT actually offers very solid performance. When Valve said that you should treat the FX series as DirectX 8 hardware, they weren’t kidding.
Owners of older GeForce4 cards should be pretty happy with DX8 performance as the Ti 4600 was quite playable in our at_canals_08 test.
Let’s go for a Drive
Our second demo comes from the d2_coast_05 level, which starts off with the Half Life 2 buggy. After hopping in the buggy we take a spirited drive down the high way, (poorly) avoiding enemies as well as abandoned cars. There is some exchange of fire towards the end of the demo, and overall the demo is fairly short.
This demo offers a good idea of general outdoor performance in Half Life 2 where elements such as water are not involved. There are a handful of explosions that take place while the buggy’s machine gun ignites a flammable barrel that also stress the GPU a bit. With the absence of water, the flashlight or any reflective surfaces, we find ourselves with a demo that is far less shader bound than our first benchmark, but just as important since not all areas of Half Life 2 are going to be incredibly shader bound.
The standings don’t really change that much in our at_coast_05 demo, those users who bought Radeon 9600XTs in anticipation of Half Life 2 a year ago made a very wise purchasing decision. Then again, those who bought Radeon 9700 Pros two years ago are still reaping the benefits of their investment today – hang on to that card!
The FX 5900XT continues to do horrendously in DX9 mode.
Running in DX8 mode things change dramatically, the 5900XT is now in the top three, performing almost as well as the 9600XT. The GeForce4 Ti 4600 continues to hide its age very well, even outperforming newer offerings.
How about a walk on the beach?
Just like in the original Half Life, Half Life 2's levels are split into multiple parts and are loaded as you encounter them in order to make the game flow more like a story rather than your average first person shooter. Our next benchmark is a continuation of the d2_coast levels: d2_coast_12.
This particular demo takes place on a beach during the early morning. In the demo, our player walks along the beach only to be ambushed by a few soldiers, which he mows through with ease. Here's where things get interesting though; one of the most stressful shaders in the entire game is located in the d2_coast_12 level. There are a couple of huts armed with machine guns placed on the beach, but to protect the operator of the gun there's a bit of protective glass much like a windshield at the front of the huts. The glass shaders end up severely reducing frame rate, although with all of the cards we have here the game is still playable.
Our player stares at the glass of one of these huts for a bit before moving on, finally coming across a couple of enemies in an elevated hut. The player fires a few rockets at the hut, which produce explosions that are also fairly GPU intensive, while being shot at from above. The demo closes with our player tossing a grenade at the enemy hut as a last resort.
We chose this level and section of the game for two reasons: 1) The GPU intensive glass shader we mentioned earlier intrigued us and slowed down even the fastest GPUs, and 2) the level had a lot of good combat which we were lacking from some of the other demos. Once again, you can see how this demo is also typical of Half Life 2 gameplay.
Once again, the standings remain virtually unchanged in this demo with the 9700 and 9600XT performing very well. The Radeon X300 and GeForce 6200 also perform very closely to one another here:
In DX8 mode there's more of the same, the 5900XT does pretty well as does the age old GeForce4:
In Jail, with Friends
Our Prison demo features a level that was a part of an older Half Life 2 showcase a year or so ago. In this indoor level, a group of spider-like-creatures help our player fend off a large group of soldiers as well as automated gun turrets.
There is a lot of gunfire in this level which makes this indoor level more GPU bound than it would have otherwise been. Since Gordon doesn’t have a flashlight at this point in the game, we didn’t use it during our recording of the demo. Despite the lack of flashlight and the fact that it’s an indoor level, we found that this demo was decently GPU bound.
There are no surprises in DX9 mode, the 9700 and 9600XT continue to be the top performers out of this roundup. The 9700 Pro and 9800 Pro are obviously the faster cards but they were also in a much different price class upon their release.
Now on to DX8 performance:
The Slowest Level in the Game
For our fifth and final demo we turn to one of the last levels in the game – d3_c17_12. This city level takes place mostly outdoors and gave us the lowest average frame rates out of any level we played in during our testing of Half Life 2. A combination of all of the fire shaders as well as the explosions and weapon fire and the outdoor lighting make for one very stressful test.
Our player fires upon one of the mammoth mechanical spiders using a handful of weapons, including the RPG which in itself ends up being decently stressful on the GPU.
No real surprises here in our final benchmark:
Once again, we see very similar standings in this test under DX8:
A Pretty Decent DirectX 7
The second most popular Half Life 2 GPU according to Valve’s own statistics is the GeForce4 MX. As a quick refreshed, the GeForce4 MX is basically a GeForce2 MX with an updated memory controller, so its feature set will not be DirectX 8 compliant like the GeForce4, rather it is more of a DX7 part. So what do you lose if you’ve got an older card like a GeForce2, GeForce4 MX or original Radeon?
Of course the water quality in DX7 mode is similar to what we saw in DX8 mode, but there are much larger sacrifices made in DX7 mode.
For starters, features like bump mapping are gone, making the levels look significantly worse than when using the DX8 path. The screenshot below shows Valve’s DX8 path at work, mouse over to see what you lose by going to DX7:
While you could argue that there’s not too big of a difference between DX9 and DX8 (other than the water), everything looks significantly worse in DX7 mode.
The other big change is that in DX7 mode the draw distances are significantly reduced, so what you notice are that certain objects will slowly fade in the closer you get to them. For example, staring into the distance we see nothing in front of the chain link fence:
Stepping forward we begin to see something faint fade in:
Moving in a little closer we see the green dumpster completely:
Another few steps and we see two more objects faintly appear:
A little further and we see two trashcans appear as well:
Running in DX7 mode does sacrifice quite a bit, but the game is extremely playable as you are about to see. If you have the ability to run in a higher quality mode then you definitely should, but what’s most important is that even in DX7 mode Half Life 2 looks better than any other DX7 title. At the same time Half Life 2 in DX7 mode runs and looks better than newer games on graphics hardware that’s now four years old. You can download all of the screenshots on this page in an uncompressed format here.
Let’s see how well the GeForce4 MX runs in DirectX 7 mode…
GeForce4 MX DirectX 7 Performance
In our at_canals_08 demo the numbers speak for themselves, using the DX7 path even the GeForce4 MX440 is extremely playable under Half Life 2:
Performance looks even better in at_coast_05.dem:
Even in our most stressful demo, the GeForce4 MX does just fine.
While it may not look as good as the DX8 and DX9 codepaths, the DirectX 7 support in Half Life 2 is nothing short of incredible. Older card owners should upgrade their CPUs as needed but needn't upgrade their graphics cards unless they want better image quality, in terms of speed, even something as slow as a GeForce4 MX will do just fine.
Valve has done an incredible job with making Half Life 2 playable on just about any graphics platform sold over the last couple of years. While our first guide was more of an upgrade guide telling you what card to upgrade to, Part 2 let us know more about where your graphics card stands today.
We found that as far as DirectX 9 support goes, if you've got a Radeon 9600XT you are in very good shape, the game is quite playable at 1024 x 768 and if you want higher frame rates then 800 x 600 works just fine as well. If you want a low cost upgrade then a GeForce 6600GT AGP would be a good way of smoothing things out at 1280 x 1024. Even owners of the Radeon X300 will find that their performance is relatively decent, albeit at 800 x 600. Slower cards like the Radeon 9550 and the X300SE may be better played in DirectX 8 mode instead.
If you've got a NV3x part your Half Life 2 performance isn't too bad so long as you stay far away from the DX9 codepath; as a DX8 solution, the NV3x GPUs do just fine, there's actually no reason to upgrade unless you want better image quality, since the frame rates they will provide are pretty high to begin with. The same can actually be said about the GeForce4; we found the GeForce4 to run Half Life 2 extremely well in DX8 mode, and the image quality is quite good. Be warned, if you are upgrading from a GeForce4, you are going to want to go for something no slower than the Radeon 9700, otherwise you will get an increase in image quality but a decrease in frame rate.
In the end, we hope these two guides can give you a good idea of how powerful your current graphics card is and what your upgrade path should be if you want higher frame rates or better image quality. The next step is to find out how powerful of a CPU you will need, and that will be the subject of our third installment in our Half Life 2 performance guides. Stay tuned...