The State of DirectX 10 - Image Quality & Performance


Company of Heroes: Performance

StateOfDX10_COH_logo.jpg
Strategy games generally have low system requirements, especially compared to first-person titles from the same generation. Company of Heroes is somewhat of an exception. Since it offers nearly first-person shooter class graphics, it must also suffer from FPS-level system requirements. It isn't too difficult to get Company of Heroes to run at an acceptable speed since it only requires a 2.0GHz single-core processor and a DX9c compatible graphics card with 64MB of memory. However, it can be a challenge to get the game to look as good as it can while still maintaining playable frame rates.

Company of Heroes System Requirements
StateOfDX10_Req_CoH.png

For our benchmarks, all graphics settings were turned up to their highest level. Anti-aliasing was set to 4X and anisotropic filtering was set to 16X. While patch 1.70 added DirectX 10 support, it also implemented mandatory vertical sync. Starting with patch 1.70, there is no longer an option to toggle vertical sync and it is on by default. We also found that forcing vertical sync off with the display drivers is ineffective. The only way to reliably disable vertical sync for a patched version of Company of Heroes is to use the '-novsync' flag. We inserted the flag into the Company of Heroes shortcut in the Windows Game Explorer for all of our benchmarks.

In a scripted first-person shooter, the player is the primary variable that the rest of the game world revolves around. This makes it relatively easy to create a contrived in-game test that can be used as a benchmark. It's usually as simple as playing through a level several times whilst performing the exact same actions each time. In a strategy game, there are far more variables and it is much more difficult to create a consistent, repeatable test to use as a benchmark. In most strategy games, Company of Heroes included, it is nearly impossible to re-create the exact same sequence of events. Even if the player behaves exactly the same each time, the computer will often respond differently.

Luckily, Company of Heroes has a built-in automated benchmark that can be accessed from the video options menu. The benchmark consists of a composition of two in-game, fully rendered cutscenes that you encounter in an early level of the single player campaign. We found the benchmark to be fairly useful for judging what performance will be like during normal gameplay and we will be using it in this article.

Company of Heroes Performance Comparison
DirectX 9 and DirectX 10 Performance Compared

 







The results of our benchmark shows a huge disparity between our DX9 and DX10 results. For all five of our graphics cards, DX9 performance far exceeded DX10 performance. Our top three cards, the 8800GTX, 8800GTS and 2900XT, all performed very well in DX9 and maintained very playable frame rates. The 8600GTS and the 2600XT didn't do quite as well but remained playable in DX9 except at 1920x1200, where they both began to noticeably stutter. DX10 performance is a completely different story. While the 8800GTX and the 8800GTS maintain acceptable frame rates at all the resolutions we tested, the 2900XT had a hard time, although it remained somewhat playable. Our two mid-range cards didn't like DX10 at all and posted unplayable results at all three resolutions.

We'd like to point out that the low results posted by some of the cards aren't typical of a standard user experience. Company of Heroes can be very video memory intensive and it's fairly easy to exceed a video card's available video memory with certain setting combinations, resulting in a sharp drop in performance. Relic has realized this and in patch 1.71, they have added a bar in the video options menu to indicate how much video memory is being used and if you exceed the available amount, the game prevents you from saving the chosen video settings. Due to this restriction and since our mid-range cards only possess 256MB of video memory, we had to use version 1.70 of the game for our tests. We found that 256MB of video memory was simply too limiting and we were not able to enable many of the game's image quality options. We'd also like to note that with all image quality settings set to their highest value, even the 768MB of video memory that the 8800GTX wasn't enough in DX9, although it was barely able to fit in DX10. This gives us some indication of just how memory intensive Company of Heroes can be and it also tells us that DX10 is actually more memory efficient than DX9.

It seems that the DX10 image quality enhancements really hurt performance and the cost is hard to justify. The image quality improvement provided by the DX10 enhancements really aren't noticeable enough to justify the extremely steep performance hit. All of our results show that Company of Heroes is able to achieve less than half the average frame rate in DX10, compared to DX9. The small image quality improvement simply isn't worth it.

Correction: We made a slight mistake in the original article. It turns out that the bar in the video options menu, added by patch 1.71, doesn't represent video memory per se. It actually represents the amount of virtual address space used by Company of Heroes, they just happen to be essentially the same thing in Vista.


 Discuss This Article

Related content