Company of Heroes

While Company of Heroes was first out of the gate with a DirectX 10 version, Relic didn't simply recompile their DX9 code for DX10; Company of Heroes was planned for DX10 from the start before there was any hardware available to test with. We are told that it's quite difficult to develop a game when going only by the specifications of the API. Apparently Relic was very aggressive in their use of DX10 specific features and had to scale back their effort to better fit the actual hardware that ended up hitting the street.

In spite of the fact that Microsoft requires support for specific features in order to be certified as a DX10 part, requiring a minimum level of performance for features is not part of the deal. This certainly made it hard for early adopters to produce workable code before the arrival of hardware, as developers had no idea which features would run fastest and most efficiently.

In the end, a lot of the DX10 specific features included in CoH had to be rewritten in a way that could have been implemented on DX9 as well. That's not to say that DX10 exclusive features aren't there (they do make use of geometry shaders in new effects); it's just that doing things in a way similar to how they are currently done offers better performance and consistency between hardware platforms. Let's take a look at some of what has been added in with the DX10 version.

The lighting model has been upgraded to be completely per pixel with softer and more shadows. All lights can cast shadows, making night scenes more detailed than on the DX9 version. These shadows are created by generating cube maps on the fly from each light source and using a combination of instancing and geometry shading to create the effect.


Company of Heroes DirectX 9



Company of Heroes DirectX 10


There is more debris and grass around levels to add detail to terrain. Rather than textures, actual geometry is used (through instancing and geometry shaders) to create procedurally generated "litter" like rocks and short grass.

Triple buffering is enabled by default, but has been disabled (along with vsync) for our tests.

We discovered that our cards with 256MB of RAM or less had trouble running with 4xAA and DirectX 10. Apparently this is a known issue with CoH on 32-bit Vista running out of addressable memory. Relic says the solution is to switch to the 64-bit version of the OS, which we haven't had time to test out quite yet.

DirectX 9 Tests

Company of Heroes


Company of Heroes DX9 Performance


Company of Heroes


Company of Heroes 4xAA DX9 Performance


Under DX9, the Radeon HD 2900 XT performs quite well when running Company of Heroes. The card is able to keep up with the 8800 GTX here. In spite of a little heavier hit from enabling 4xAA, the 2900 XT still manages to best it's 8800 GTS competition. But the story changes when we move to DX10.


DirectX 10 Tests

Company of Heroes


Company of Heroes DX10 Performance


Company of Heroes


Company of Heroes 4xAA DX10 Performance


When running with all the DX10 features enabled, the HD 2900 XT falls to just below the performance of the GeForce 8800 GTS. Once again, the low-end NVIDIA and AMD cards are unable to run at playable framerates under DX10, though the NVIDIA cards do lead AMD.

Enabling 4xAA further hurts the 2900 XT relative to the rest of the pack. We will try to stick with Windows Vista x64 in the future in order to run numbers with this game on hardware with less RAM.

Call of Juarez Lost Planet: Extreme Condition
Comments Locked

59 Comments

View All Comments

  • misaki - Thursday, July 5, 2007 - link

    So Nvidia and AMD actually complained about their "mainstream" parts being below par?

    It sounds to me like they are seriously out of touch. Media center PCs will get their 8400 and 2400 cards for h264 acceleration. Gamers with lots of money will buy those $400+ cards as usual. But your average gamer in the $200 market is stuck with junk that is unplayable for dx10 games and performs like previous gen hardware that just barely makes the grade for current games already on the market.

    What is so hard to understand?
  • MadBoris - Thursday, July 5, 2007 - link

    I'm glad that some of the things that were said in the article, are starting to be said. DX10 reminds me of Physx, great concept but can't possibly succeed due to certain hurdles in the technology being able to actually take off. Unfortunately DX10 also isn't going to be what we all hoped it would be in real performance, video drivers are not the only reason.

    There is something real counterintuitive with quality native DX10 rendering support.
    There is very little incentive for a developer to produce a good DX10 renderer when developers have DX9 support on Vista along with many of their real current goals of console support for more customer base. With only so many hours a day, console support is much more lucrative with new people having access to buying a title, that will also actually run just fine with only DX9 on a Vista platform, never needing or really benefitting from DX10.

    The costs of making DX10 games outweigh the benefits, and the benefits aren't currently that palpable in the first place. Furthermore, actual DX10 performance will rarely ever be all that positive, something that is too early to prove, but rather negative even though apples to apples DX9 to DX10 comparisons cannot be made.

    As to the low end parts, it's just marketing, theirs no "real" value DX10 for $100 -$150 for gaming. If people want a good video value purchase for games, $200 is where the good quality/price starts and it's mostly in a previous generation, not some value card for $150. Whether we agree with that price point being 'worth it' is another matter altogether and is purely personal preference. I don't know why Nvidia or ATI even introduced low end DX10 compatible hardware when customers will only get angry at developers or video mfr's for the blunder of underpowered hardware for high end game titles. This low end DX10 hardware mystified me. it was either going to slow down DX10 progress or have to be ignored. It seems obvious that all high end games will have to pretty much ignore the low end parts for achieving acceptable framerates with DX10 for new eye candy titles. They should have left DX10 out entirely in low end, but they had to include it because of competition between AMD/Nvidia, neither wanted to leave the other with a marketing advantage of saying, look we have DX10. DX10 with it's lofty goals of being able to render more in a scene and produce even greater quality eyecandy is at odds with low price. Higher quality rendering will always be at odds with low price, they are mutually exclusive. Low price never is going to give you good performance and quality, people should really start being realistic as to what they are paying for at a $100 - $150 price point, it's a consumer expectations problem. Low end hardware will work fine for games like Sims and those games will target low end hardware, but not high end games for higher resolutions and decent frame rates.

    In the end, with future goggles on I think the picture is becoming quite clear that DX10 will become one of the DX API's that becomes mainly skipped (if a decent DX successor becomes available in next few years). The only time it will really make sense to go above DX9 native support is when Vista saturates >%85 gaming market share. In the several years that that will take, DX11 or higher should be available and will be superior to DX10, so DX10 in hindsight will really end up being just a marketing ploy to upgrade to Vista, little more.

    Glad the mask is starting to come off and more people are being able to see the picture clearer that making any purchases around DX10 with a GPU or OS is silly and bound to cause frustration.
  • strafejumper - Thursday, July 5, 2007 - link

    i upgraded recently - but ended up only spending under $300 for a core2duo system
    this is why - people were saying get a DX10 card - future proof
    i decided to keep my old agp card because i felt real dx10 games and real dx10 hardware were not here yet.

    i'm happy i made i feel the right choice and didn't spend money on new psu, sata drives etc. so i could have a $$$ dx10 card only to play call of juarez at 14 fps.
  • stromgald - Thursday, July 5, 2007 - link

    I have to agree. I was considering trying to get an 8600 for my SFF PC, but after looking at this, I'm probably going to hold off until the next generation. HTPC and SFF PCs just can't handle the heat an 8800 series generates, and I want at least playable DX10 performance.
  • jay401 - Thursday, July 5, 2007 - link

    quote:

    Both NVIDIA and AMD were very upset over how little we thought of their DX10 class mainstream hardware. They both argued that graphics cards are no longer just about 3D, and additional video decode hardware and DX10 support add a lot of value above the previous generation. We certainly don't see it this way. Yes, we can't expect last years high-end performance to trickle down to the low-end segment, but we should at least demand that this generation's $150 part will always outperform last generation's.


    Seriously, F them. It's pathetic they're trying to pawn off half-assed hardware as "mid-range enthusiast" parts when they can't even perform as good as the mid-range from the previous generation. Jerks.
  • jay401 - Thursday, July 5, 2007 - link

    Another new article showing how DX10 Vista performance propaganda is garbage.

    Gotta love people who try to act superior b/c they bought Vista for gaming when all it does is suck up more system resources and uses DX10, the combination of which will easily inhibit performance on equivalent hardware.
  • BigLan - Thursday, July 5, 2007 - link

    "They both argued that graphics cards are no longer just about 3D, and additional video decode hardware and DX10 support add a lot of value above the previous generation."

    Yeah, I don't buy into this either. I've pretty much given up on 'video decode,' be it avivo or purevideo. You end up stuck with using a specific product, rather than ati or nvidia opening the features for any developer to access. Right now, it's only useful with the latest windvd, powerdvd or nero but you have to hope your driver version is the right one, and doesn't (and probably never will) work for x264 or xvid content.

    Purevideo is horribly branded by nvidia - is it card features that everyone has access to, or do you have to buy it from them? And has ati actually released their avivo video converter to the public? Could I use it to compress some of my recorded tv shows from mpeg to xvid?

    Maybe this is like the mpeg2 decoder situation was in 98/99, in which case we should just wait for cpu speeds to increase and mean that we don't need video decode acceleration.
  • titan7 - Thursday, July 12, 2007 - link

    I agree. How much quicker would things be if all the video transistors were spent on more shader processors? I want my video card for video games. I want my dvd player for movies.
  • vailr - Thursday, July 5, 2007 - link

    Comparing mid-range DX10 cards:
    (lowest prices found via froogle.com; shipping not included)
    Radeon 2600XT 256Mb ~$145
    http://www.ewiz.com/detail.php?p=AT-2600XT&c=f...">http://www.ewiz.com/detail.php?p=AT-2600XT&c=f...
    nVidia 8600GT 256Mb ~$100 (after $15 MIR)
    http://www.newegg.com/Product/Product.asp?Item=N82...">http://www.newegg.com/Product/Product.asp?Item=N82...
    How is the 2600XT worth the added $45 v. the 8600GT?
  • Comdrpopnfresh - Thursday, July 5, 2007 - link

    I have a 7600gt oc'd to 635/800. I get 30+fps with better than default settings, with AAx2 set @ 1024x768. Why do these cards not seem to do much better (given they are @ 1280x1024)?

Log in

Don't have an account? Sign up now