We have been following a brewing controversy over the PC version of Assassin’s Creed and its support for AMD Radeon graphics cards with DirectX 10.1 for some time now. The folks at Rage3D first broke this story by noting some major performance gains in the game on a Radeon HD 3870 X2 with antialiasing enabled after Vista Service Pack 1 is installed—gains of up to 20%. Vista SP1, of course, adds support for DirectX version 10.1, among other things. Rage3D’s Alex Voicu also demonstrated some instances of higher quality antialiasing—some edges were touched that otherwise would not be—with DX10.1. Currently, only Radeon HD 3000-series GPUs are DX10.1-capable, and given AMD’s struggles of late, the positive news about DX10.1 support in a major game seemed like a much-needed ray of hope for the company and for Radeon owners.
After that article, things began to snowball, first with confirmation that Assassin’s Creed did indeed ship with DX10.1 support, and then with Ubisoft’s announcement about a forthcoming patch for the game. The announcement included a rather cryptic explanation of why the DX10.1 code improved performance, but strangely, it also said Ubisoft would be stripping out DX10.1 in the upcoming patch.
In addition to addressing reported glitches, the patch will remove support for DX10.1, since we need to rework its implementation. The performance gains seen by players who are currently playing Assassin’s Creed with a DX10.1 graphics card are in large part due to the fact that our implementation removes a render pass during post-effect which is costly.
This statement raised a whole new set of questions: What exactly is the "costly" render pass that’s being removed in DX10.1? Does it impact image quality or just improve performance? And what are Ubisoft’s motives for removing the DX10.1 code path?
Rage3D posted a follow-up article noting some very slight image quality anomalies with DX10.1, but nothing major. Other sites, including PC Games Hardware in Germany and the HardOCP, reproduced Rage3D’s findings about performance increases and minor image quality changes in DX10.1.
Perhaps the DirectX 10.1 code path in Assassin’s Creed needed some work, as Ubisoft claimed, but why remove DX10.1 support rather than fix it? The rumor mill creaked to life, with folks insinuating Ubisoft decided to nix DX10.1 support in response to pressure from Nvidia after the GPU maker sponsored Assassin’s Creed via its The Way It’s Meant To Be Played program. Our conversations with multiple credible sources in the industry gave some credence to this scenario, suggesting the marketing partnership with Nvidia may have been a disincentive for Ubisoft to complete its DirectX 10.1 development efforts.
Our next step was to ask Ubisoft some specific questions about DX10.1 support in Assassin’s Creed, in order to better understand what’s happening. Fortunately, Charles Beauchemin, the tech lead for the Assassin’s Creed development team, was kind enough to answer our questions. Those questions, and his answers, follow.
TR: First, what is the nature of the "costly" "post-effect" removed in Assassin’s Creed‘s DX10.1 implementation? Is it related to antialiasing? Tone mapping?
Beauchemin: The post-effects are used to generate a special look to the game. This means some color correction, glow, and other visual effects that give the unique graphical ambiance to the game. They are also used for game play, like character selection, eagle-eye vision coloring, etc.
TR: Does the removal of this "render pass during post-effect" in the DX10.1 have an impact on image quality in the game?
Beauchemin: With DirectX 10.1, we are able to re-use an existing buffer to render the post-effects instead of having to render it again with different attributes. However, with the implementation of the retail version, we found a problem that caused the post-effects to fail to render properly.
TR: Is this "render pass during post-effect" somehow made unnecessary by DirectX 10.1?
Beauchemin: The DirectX 10.1 API enables us to re-use one of our depth buffers without having to render it twice, once with AA and once without.
TR: What other image quality and/or performance enchancements does the DX10.1 code path in the game offer?
Beauchemin: There is no visual difference for the gamer. Only the performance is affected.
TR: What specific factors led to DX10.1 support’s removal in patch 1?
Beauchemin: Our DX10.1 implementation was not properly done and we didn’t want the users with Vista SP1 and DX10.1-enabled cards to have a bad gaming experience.
TR: Finally, what is the future of DX10.1 support in Assassin’s Creed? Will it be restored in a future patch for the game?
Beauchemin: We are currently investigating this situation.
So we have confirmation that the performance gains on Radeons in DirectX 10.1 are indeed legitimate. The removal of the rendering pass is made possible by DX10.1’s antialiasing improvements and should not affect image quality. Ubisoft claims it’s pulling DX10.1 support in the patch because of a bug, but is non-commital on whether DX10.1 capability will be restored in a future patch for the game.
The big question now is what happens next. It’s not hard to surmise that AMD’s developer relations team stands ready to assist Ubisoft with fixing Assassin’s Creed‘s DX10.1 code path as quickly as possible, and that doing so ought to be relatively straightforward, since the game’s developers have said DX10.1 simply allows them to reuse a depth buffer without re-rendering it.
One would hope that all parties involved, including Ubisoft and Nvidia, would encourage the Assassin’s Creed development team to complete its DX10.1 development work in a timely fashion—not to abandon it or to delay its completion until Nvidia also has a DX10.1-capable GPU on the market.
After all, Nvidia recently signed on to the PC Gaming Alliance, whose charter involves pushing common standards like DX10.1 and increasing "the number of PCs that can run games really well." Assassin’s Creed is nothing if not a perfect candidate for assistance on this front: a high-profile console port that’s gaining a reputation for steep hardware requirements and iffy performance on the PC. How can such an alliance succeed if one of its members is working at cross-purposes with it in a case like this one? And what would the owner of an nForce-based system with a Radeon graphics card think upon learning that Nvidia’s marketing dollars had served to weaken his gaming experience?
We’ll be watching to see what happens next. For our part, the outcome will affect whether and how we use Assassin’s Creed and other Ubisoft and Nvidia "TWIMTBP" titles in our future GPU evaluations.
Update 5/9/08: Since publishing this story, we’ve spoken further with both Nvidia and Ubisoft about some of the issues involved. Nvidia spokesman Ken Brown told us unequivocally that "no money changed hands" as a result of Ubisoft joining Nvidia’s "The Way It’s Meant To Be Played" program, because that program is entirely a co-marketing arrangement. As part of this program, Nvidia may promote Assassin’s Creed for Ubisoft in various ways (including magazine advertising) and may offer engineering resources and development assistance. But, Brown said, the value for Ubisoft comes solely from such activities.
Brown further emphasized that Nvidia’s "TWIMTBP" program has done many good things for PC gaming, helping developers improve image quality, compatibility, performance, and visibility for their games—an assertion that’s tough to dispute, we must admit.
Brown also said Nvidia exerted no influence whatsoever on Ubisoft or the development team with regard to the DirectX 10.1 code path.
Ubisoft spokesman Michael Beadle confirmed to us that Ubisoft’s participation in TWIMTBP was strictly a co-marketing deal, and that Nvidia did not pay Ubisoft any money as a result of the deal. He seconded Brown’s statement that Nvidia did not influence the decision to remove DirectX 10.1 support from the first patch for Assassin’s Creed. Beadle said the decision was made strictly by the game’s development team.
Still up in the air is the question of whether Ubisoft will restore DX10.1 support to Assassin’s Creed in a future patch. Based on what we’ve heard so far, I’d say that’s not likely to happen. Ubisoft maintains no final decision has been made. Beadle made the further point that users of DirectX 10.1 graphics cards may simply want to avoid applying the patch to the game, if they’re not encountering any problems with it.