Nvidia GameWorks HBAO+ Behind Visual Corruption In Gears Of War Ultimate Edition
Earlier this week Gears of War: Ultimate Edition was exclusively released on the Windows 10 Store as the world's first DirectX 12 game. An event that was supposed to represent Microsoft's commitment to PC gaming and a community that has been growing impatient for many years with a company that it believes has effectively abandoned it in favor of chasing the elusive "living room" market.
[UPDATED 03/05/2016 03:35 PM] We've just learned that no one at AMD was informed by Microsoft that review codes were being handed out to journalists for performance testing earlier this week and only found out after the fact.
We have also tested the game again with the newly released patch. This patch was intended to fix the visual corruption issue with ambient occlusion turned on. However, it appears that all this patch does to address the issue is forcibly disable Ambient Occlusion, even if enabled through the menu.
Gears of War : Ultimate Edition post-patch - Ambient Occlusion On - R9 Nano
Gears of War : Ultimate Edition post-patch - Ambient Occlusion Off - R9 Nano
Photo showing Gears of War : Ultimate visual corruption – Taken by our Hardware Editor Keith May
Sadly what we ended up with was a broken mess and “one of the most disastrous PC game launches in years” writes Forbes’s Jason Evangelho. We covered the many foibles of this, there's no other word for it, broken game earlier in the week. We would highly advise you to go check out that article if you haven't already as we're not going to cover all of the game's issue here. Rather we will focus on the elephant in the room. Something that's been so often cited as the culprit in many broken games in the past.
Controversy Always Seems To Find Nvidia's GameWorks Program
GameWorks is a developer program that was established by Nvidia in late 2013. Its goal was to provide developers with a collection of tools and graphics libraries for a variety of ends. Be it to help them improve the visual quality of their games or develop software for Virtual Reality solutions and mobile platforms powered by Nvidia hardware.
We're going to focus primarily on the PC wing of the GameWorks program, more specifically a library dubbed VisualFX. This library encompasses a number of Nvidia optimized rendering techniques and in-game visual effects that span everything from shadows to anti-aliasing, depth of field, global illumination, ambient occlusion, lighting, hair and fire simulation as well as other effects.
There’s been a lot of controversy, a lot of confusion, hearsay, misconceptions and mischaracterizations around several aspects of GameWorks since its inception. GameWorks had been a subject of debate for a long while due to various concerns over alleged obfuscation of developers’ control by Nvidia and the serious implications this has on the technical quality and performance of games involved with the program. There were also numerous accusations of GameWorks harming the gaming industry and sabotaging the performance of AMD hardware.
A number of prominent developers went as far as to describe the program at one point as a “blackbox”and called it “unusable” at the early stages of its life. All of this is what prompted us to take a deeper look into the program and investigate the numerous claims being made. However, it’s been a long while since many of those concerns had been voiced and Nvidia did react by introducing improvements and adjustments along the way to address many of the issues raised.
Suffice to say it's been a hot topic that we attempted to address head-on by talking with both Nvidia and AMD in a four thousand word investigative report that I published last year. Earlier this year I spoke with Nvidia again and published a follow-up to underline some of the much needed improvements and changes that the company has made.
Unfortunately it seems the controversy never ends. Beginning with a string of disastrous game launches - Including the terribly buggy and poor performing Assassin's Creed Unity And the similarly broken Batman Arkham Knight - on the PC over the past two years all of which were part of the GameWorks program to the ultimately broken Gears of War : Ultimate Edition which was released earlier this week.
Nvidia's HBAO+ GameWorks Feature Is Behind The Visual Corruption Issue In Gears Of War Ultimate Edition
Screenshots showing Gears of War : Ultimate visual corruption - Taken by our Hardware Editor Keith May
As it turns Nvidia's HBAO+ ambient occlusion feature was the culprit behind the horrible artifacting / visual corruption issue that plagued some of AMD's Radeon graphics cards. What's more eyebrow-raising is the fact that there isn't even any mention of HBAO+ inside Gears of War Ultimate Edition's graphics settings menu. There's only an option to turn "Ambient Occlusion" on or off, with no mention of what type of ambient occlusion it is.
Typically when a vendor specific visual effect is implemented in any game it ends up listed under its vendor specific designation . For example HairWorks would be listed as HairWorks and HBAO+ under HBAO+ rather than given generic "hair physics" or "ambient occlusion" designations. When no such specificity is present it's assumed that the visual effect in question is a developer specific, hardware agnostic implementation.
In the case of Gears of War Ultimate Edition it was Nvidia's proprietary HBAO+ GameWorks feature listed under a generic name. In fact we only learned that the ambient occlusion implementation in Gears of War : Ultimate Edition was in fact HBAO+ when Nvidia's Andrew Burnes announced the availability of Game Ready drivers on the GeForce.com blog and named it as one of the game's features.
Source : GeForce.com - Game Ready Driver Announcement
I can only speculate about why the decision was even made by Microsoft to give HBAO+ a generic label. It's quite unusual and very much the opposite of what you'd want to do as a developer to ensure transparency. For contrast let's look at what the Far Cry 4 developers decided to label the exact same ambient occlusion implementation in their game's menu.
Far Cry 4 - visual quality settings menu
Not only is it plainly labeled as a GameWorks feature but it's also optional. As in it's not part of any of the game's graphics presets. On the other hand in the case of Gears of War Ultimate Edition, HBAO+ is enabled by default if the Ultra preset is selected.
It comes down to this. The fact that a proprietary Nvidia visual effect -- HBAO+ -- that exhibits game-breaking behavior on competing hardware was implemented under the guise of generic "Ambient Occlusion" and was made part of a graphics preset that was known to consequentially sway the results of independent testing without informing any of the press beforehand is misleading and negligent at best, deceptive and downright fraudulent at worst. We can't think of any rational explanation as to why this was allowed to happen.
Disabling HBAO+ Will Solve The Visual Corruption Issue But That's Only The Tip Of The Iceberg
Simply turning off ambient occlusion in the settings will completely resolve the artifacting that we witnessed while testing the AMD Radeon R9 Nano and R9 380 graphics cards.
As it turns out HBAO+ wasn't the only thing hidden behind a veil. Whilst digging into the game's files a friend of WCCF - youtuber Blindrun - spotted a very interesting hidden game file. The file is BaseEngine.ini and it can be found in the following folder path on Windows 10 : C:\ProgramFiles\WindowsApps\Microsoft.DeltaPC_126.96.36.199_x64__8wekyb3d8bbwe\Engine\Config
The WindowsApps folder is windows protected. Which you means that you'll have to jump through some hoops to actually access it. But here's how to do it.
In BaseEngine.ini we spotted a very peculiar entry. "bDisablePhysXHardwareSupport=False". More peculiar is the fact that this file cannot be edited in anyway. If it is, the game will simply overwrite any changes once it's booted up and connected to Microsoft's servers.
The entry means that hardware accelerated PhysX is enabled by default in the game and because any changes to the file are overwritten automatically upon game start-up means it can't be disabled. For those of you unaware PhysX is Nvidia's proprietary game physics engine and can only be accelerated by Nvidia's own graphics cards. If a competing GPU is detected by the PhysX driver, the work will instead be automatically offloaded onto the CPU. This in turn means that the feature will run disproportionately slower on non Nvidia equipped systems.
In the past, all games that included hardware accelerated PhysX features such as debris, water physics and so on included the option to turn it off. This was critical because these features directly influenced how the game performed. The option was also necessary when evaluating AMD and Nvidia graphics cards to ensure that the testing was done on an even playing field.
Additionally, because hardware accelerated PhysX features are only visual and aren't part of the game's core mechanics ;disabling them would not affect the game's behavior in any way. Sadly because we are unable to set the hardware acceleration entry to false in Gears of War Ultimate Edition without it being overridden. we don’t know what it’s actually doing and if it's even functioning. As of right now we just don’t know what effect it has because we simply can’t test it.
Suffice to say there seem to be some "shenanigans" going on here so we'll keep a close watch and update everyone accordingly. In the meantime we’d advise PC gamers to wait until the mist clears on the issues surrounding this troubled PC release before pulling the trigger.