Jump to content

Ex nVidia engineer: every game ships broken, we fix it in drivers

SanityAgathion

Games ship broken, we know it. But who do you blame when your shiny powerful GPU performs like rubbish, or shows tons of geometry and texture glitches? In many cases the game code is so broken that hardware manufacturer needs to step in. And apparently this had become so common practice now, that game developers do not bother to optimize, or even properly write code running on GPUs at all, because they know "it will get fixed in drivers". Per forum post on gamedev.net:

 

The first lesson is: Nearly every game ships broken. We're talking major AAA titles from vendors who are everyday names in the industry. In some cases, we're talking about blatant violations of API rules - one D3D9 game never even called BeginFrame/EndFrame. Some are mistakes or oversights - one shipped bad shaders that heavily impacted performance on NV drivers. These things were day to day occurrences that went into a bug tracker. Then somebody would go in, find out what the game screwed up, and patch the driver to deal with it. There are lots of optional patches already in the driver that are simply toggled on or off as per-game settings, and then hacks that are more specific to games - up to and including total replacement of the shipping shaders with custom versions by the driver team. Ever wondered why nearly every major game release is accompanied by a matching driver release from AMD and/or NVIDIA? There you go.

 

This is also one of the reasons why it is so hard for smaller manufacturers of graphic chips to break into this market: they just don't have resources to cope with the amount of 'gaming history' built into drivers, and don't have engineering capacities able to comprehend both source code of drivers, and game itself.

 

 

 

Maintaining the drivers with the current wide surface area is tricky. Although AMD and NV have the resources to do it, the smaller IHVs (Intel, PowerVR, Qualcomm, etc) simply cannot keep up with the necessary investment. More importantly, explaining to devs the correct way to write their render pipelines has become borderline impossible. There's too many failure cases. it's been understood for quite a few years now that you cannot max out the performance of any given GPU without having someone from NVIDIA or AMD physically grab your game source code, load it on a dev driver, and do a hands-on analysis. These are the vanishingly few people who have actually seen the source to a game, the driver it's running on, and the Windows kernel it's running on, and the full specs for the hardware. Nobody else has that kind of access or engineering ability.

 

Another interesting observation, in the light of recent new APIs that we all look forward to:

 

The last piece to the puzzle is that we ran out of new user-facing hardware features many years ago. Ignoring raw speed, what exactly is the user-visible or dev-visible difference between a GTX 480 and a GTX 980? A few limitations have been lifted (notably in compute) but essentially they're the same thing. MS, for all practical purposes, concluded that DX was a mature, stable technology that required only minor work and mostly disbanded the teams involved. Many of the revisions to GL have been little more than API repairs. (A GTX 480 runs full featured OpenGL 4.5, by the way.) So the reason we're seeing new APIs at all stems fundamentally from Andersson hassling the IHVs until AMD woke up, smelled competitive advantage, and started paying attention. That essentially took a three year lag time from when we got hardware to the point that compute could be directly integrated into the core of a render pipeline, which is considered normal today but was bluntly revolutionary at production scale in 2012. It's a lot of small things adding up to a sea change, with key people pushing on the right people for the right things.

 

Source: http://www.gamedev.net/topic/666419-what-are-your-opinions-on-dx12vulkanmantle/#entry5215019

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Is this a reliable source? I've been unaware of this website.

Link to comment
Share on other sites

Link to post
Share on other sites

Nvidia and AMD should just publicly shame developers already. What do they have to lose? Nothing. Lazy developers hurt gaming more than anything else. Publishers are greedy, we all know that, but a heartless developer who doesn't give a shit and keeps pumping out mediocrity that flat out doesn't work well is even worse for this industry. 

Link to comment
Share on other sites

Link to post
Share on other sites

I'm not all that surprised. It does just drive home the point that game devs should not be corralled into optimizing with a specific gpu vendor, though.

Daily Driver:

Case: Red Prodigy CPU: i5 3570K @ 4.3 GHZ GPU: Powercolor PCS+ 290x @1100 mhz MOBO: Asus P8Z77-I CPU Cooler: NZXT x40 RAM: 8GB 2133mhz AMD Gamer series Storage: A 1TB WD Blue, a 500GB WD Blue, a Samsung 840 EVO 250GB

Link to comment
Share on other sites

Link to post
Share on other sites

I'm tired of broken games.

  • CPU: Intel Core i5-4690K 3.5GHz Quad-Core Processor Motherboard: ASRock Z97 Extreme3 ATX LGA1150 Motherboard Ram: Team Zeus Blue 16GB (4 x 4GB) DDR3-1600 Memory GPU: Asus GeForce GTX 970 4GB STRIX Video Card Case: Phanteks Enthoo Pro ATX Full Tower Case Storage: Crucial MX100 128GB 2.5" Solid State Drive, Western Digital Caviar Blue 1TB 3.5" 7200RPM Internal Hard Drive PSU: EVGA 750W 80+ Bronze Certified Semi-Modular ATX Power Supply Display(s): Asus VG248QE 144Hz 24.0" Monitor Cooling: Phanteks PH-TC12DX_BK 68.5 CFM CPU Cooler Keyboard:Corsair K70 RGB Cherry MX BrownMouse: Razer Deathadder Operating System: Microsoft Windows 8.1 (32/64-bit) PC Part Picker URL: http://pcpartpicker....aze101xx/saved/

Link to comment
Share on other sites

Link to post
Share on other sites

The first paragraph:

 

"Many years ago, I briefly worked at NVIDIA on the DirectX driver team (internship). This is Vista era, when a lot of people were busy with the DX10 transition, the hardware transition, and the OS/driver model transition. My job was to get games that were broken on Vista, dismantle them from the driver level, and figure out why they were broken. While I am not at all an expert on driver matters (and actually sucked at my job, to be honest), I did learn a lot about what games look like from the perspective of a driver and kernel."

 

Is it true now? That seems to be misleading, especially what you didn't quote.

The projects never end in my line of work.

CPU: Dual Xeon E5-2650v2 || GPU: Dual Quadro K5000 || Motherboard: Asus Z9PE-D8 || RAM: 64GB Corsair Vengeance || Monitors: Dual LG 34UM95, NEC MultiSync EA244UHD || Storage: Dual Samsung 850 Pro 256GB in Raid 0, 6x WD Re 4TB in Raid 1 || Sound: Xonar Essense STX (Mainly for Troubleshooting and listening test) || PSU: Corsair Ax1500i

CPU: Core i7 5820k @ 4.7GHz || GPU: Dual Titan X || Motherboard: Asus X99 Deluxe || RAM: 32GB Crucial Ballistix Sport || Monitors: MX299Q, 29UB65, LG 34UM95 || Storage: Dual Samsung 850 EVO 1 TB in Raid 0, Samsung 850 EVO 250GB, 2TB Toshiba scratch disk, 3TB Seagate Barracuda || PSU: EVGA 1000w PS Platinum

Link to comment
Share on other sites

Link to post
Share on other sites

Yeah that's almost a good point, I'm just 0.5 short of buying that however.

I really hope that was a GTX970 pun

Any unknown button should be pressed even number of times.

Link to comment
Share on other sites

Link to post
Share on other sites

For those who don't know.. most games are done with pre-built engines... 

Engines that, for the most part, are pre-optimized with their code... if the devs modify that code, that is what needs integration work. I have a very hard time believing something that "every game ships broken".

 

And OP, clickbait title... it wasn't an engineer... it was an intern.

The projects never end in my line of work.

CPU: Dual Xeon E5-2650v2 || GPU: Dual Quadro K5000 || Motherboard: Asus Z9PE-D8 || RAM: 64GB Corsair Vengeance || Monitors: Dual LG 34UM95, NEC MultiSync EA244UHD || Storage: Dual Samsung 850 Pro 256GB in Raid 0, 6x WD Re 4TB in Raid 1 || Sound: Xonar Essense STX (Mainly for Troubleshooting and listening test) || PSU: Corsair Ax1500i

CPU: Core i7 5820k @ 4.7GHz || GPU: Dual Titan X || Motherboard: Asus X99 Deluxe || RAM: 32GB Crucial Ballistix Sport || Monitors: MX299Q, 29UB65, LG 34UM95 || Storage: Dual Samsung 850 EVO 1 TB in Raid 0, Samsung 850 EVO 250GB, 2TB Toshiba scratch disk, 3TB Seagate Barracuda || PSU: EVGA 1000w PS Platinum

Link to comment
Share on other sites

Link to post
Share on other sites

So basically, game Devs are lazy and or the production houses running them don't give a shit.

 

Nvidia and AMD should just publicly shame developers already. What do they have to lose? Nothing. Lazy developers hurt gaming more than anything else. Publishers are greedy, we all know that, but a heartless developer who doesn't give a shit and keeps pumping out mediocrity that flat out doesn't work well is even worse for this industry. 

Cannot agree more.

 

I would say that we need some people to make amazing titles on linux that put AAA titles to shame, and get the market moving in that direction. Make the big Devs panic, and realize they're losing the market.

 

Unlikely, but possible

Ketchup is better than mustard.

GUI is better than Command Line Interface.

Dubs are better than subs

Link to comment
Share on other sites

Link to post
Share on other sites

I really hope that was a GTX970 pun

What else would it be? The joke gets posted a million times every day.

Link to comment
Share on other sites

Link to post
Share on other sites

I did not mean to bash on game developers. Heck, I can't program myself and I have very deep respect to people that can do beautiful and complex programs such as video games. I know many times they work close with AMD or nVidia to get the games running in best possible way. I just did not know it had grown into this proportions. Optimizing for certain hardware functions is one thing. Relying on hardware manufacturers to solve my own convenience and screw ups? That's another.

Link to comment
Share on other sites

Link to post
Share on other sites

Totally agree. The current state of the graphics industry is really messed up. We have two vendors producing ridiculously powerful chips. However conformance doesn't seem to be working as it should. At a very high level if devs write to directx11 and openGL and the driver translates that to the GPU, if everything works as intended there should be no need to release new drivers for every other game to optimize in the way AMD and Nvidia do... It should just work. I can't think of any other computing device where despite having standard APIs hardware manufacturers are forced to keep releasing drivers.

I believe this is one of the goals which Vulkan and DirectX12 will achieve. The game devs are going to have to be more responsible. The khronos group also talked about greater conformance so I think they want to make sure that intel, AMD and NVIDIA drivers all produce the same results and stick to the spec.

Link to comment
Share on other sites

Link to post
Share on other sites

And OP, clickbait title... it wasn't an engineer... it was an intern.

 

What's the difference between an intern and regular engineer working there? I am sorry if I messed up, I am not from English speaking country.

Link to comment
Share on other sites

Link to post
Share on other sites

Nvidia and AMD should just publicly shame developers already. What do they have to lose? Nothing. Lazy developers hurt gaming more than anything else. Publishers are greedy, we all know that, but a heartless developer who doesn't give a shit and keeps pumping out mediocrity that flat out doesn't work well is even worse for this industry. 

 

Nvidia shames developer -> developer signs up for AMD Gaming Evolved

 

AMD shames developer -> developer signs up for Nvidia Gameworks

 

The devs and publishers have the GPU vendors by the balls really.

Link to comment
Share on other sites

Link to post
Share on other sites

What's the difference between an intern and regular engineer working there? I am sorry if I messed up, I am not from English speaking country.

 

An intern is someone working under the level of the main staff, usually as a training or student position.

 

Anyone who didn't expect tons of iteration in code has clearly never worked in code...

The projects never end in my line of work.

CPU: Dual Xeon E5-2650v2 || GPU: Dual Quadro K5000 || Motherboard: Asus Z9PE-D8 || RAM: 64GB Corsair Vengeance || Monitors: Dual LG 34UM95, NEC MultiSync EA244UHD || Storage: Dual Samsung 850 Pro 256GB in Raid 0, 6x WD Re 4TB in Raid 1 || Sound: Xonar Essense STX (Mainly for Troubleshooting and listening test) || PSU: Corsair Ax1500i

CPU: Core i7 5820k @ 4.7GHz || GPU: Dual Titan X || Motherboard: Asus X99 Deluxe || RAM: 32GB Crucial Ballistix Sport || Monitors: MX299Q, 29UB65, LG 34UM95 || Storage: Dual Samsung 850 EVO 1 TB in Raid 0, Samsung 850 EVO 250GB, 2TB Toshiba scratch disk, 3TB Seagate Barracuda || PSU: EVGA 1000w PS Platinum

Link to comment
Share on other sites

Link to post
Share on other sites

Nvidia and AMD should just publicly shame developers already. What do they have to lose? 

 

I'm pretty sure they both get paid for those stupid "nvidiaaaaa" and "AMD" logos when you launch games. Granted is not much since there's no true exclusivity (other than a few features like whatever flavour of hair physics or AA you might prefer) but it's something so it's not a completely shit on em for free situation.

-------

Current Rig

-------

Link to comment
Share on other sites

Link to post
Share on other sites

Is this a reliable source? I've been unaware of this website.

FWIW carmack retweeted that post 2 days ago

this is one of the greatest thing that has happened to me recently, and it happened on this forum, those involved have my eternal gratitude http://linustechtips.com/main/topic/198850-update-alex-got-his-moto-g2-lets-get-a-moto-g-for-alexgoeshigh-unofficial/ :')

i use to have the second best link in the world here, but it died ;_; its a 404 now but it will always be here

 

Link to comment
Share on other sites

Link to post
Share on other sites

considering MS had to do the same thing in the past this doesn't surprise me.

Link to comment
Share on other sites

Link to post
Share on other sites

GOD DAMNIT EA

So Nvidia can fix an enitre broken game but can't fix...

you know...

4790k @ 4.6 (1.25 adaptive) // 2x GTX 970 stock clocks/voltage // Dominator Platnium 4x4 16G //Maximus Formula VII // WD Black1TB + 128GB 850 PRO // RM1000 // NZXT H440 // Razer Blackwidow Ultimate 2013 (MX Blue) // Corsair M95 + Steelseries QCK // Razer Adaro DJ // AOC I2757FH

Link to comment
Share on other sites

Link to post
Share on other sites

I believe this completely. I don't think it's game devs though but rather game publishers telling the studio to not bother with optimization. It also means that is why we always get new drivers every time a new AAA game comes out because we do. 

 (\__/)

 (='.'=)

(")_(")  GTX 1070 5820K 500GB Samsung EVO SSD 1TB WD Green 16GB of RAM Corsair 540 Air Black EVGA Supernova 750W Gold  Logitech G502 Fiio E10 Wharfedale Diamond 220 Yamaha A-S501 Lian Li Fan Controller NHD-15 KBTalking Keyboard

Link to comment
Share on other sites

Link to post
Share on other sites

Guess why nearly none of the Game Work titles run normally now? Seriously, put aside all the Game Works and Gaming Evolved stuff, this is just pure shit move by the AAA publishers. 

Link to comment
Share on other sites

Link to post
Share on other sites

This just proves how lazy developers are.

They are not lazy. They must produce a game each year with priority for consoles and then they have less time to optimize for PC... Publishers (EA, Ubi etc.) are money hungry bastards in this case :)

Connection200mbps / 12mbps 5Ghz wifi

My baby: CPU - i7-4790, MB - Z97-A, RAM - Corsair Veng. LP 16gb, GPU - MSI GTX 1060, PSU - CXM 600, Storage - Evo 840 120gb, MX100 256gb, WD Blue 1TB, Cooler - Hyper Evo 212, Case - Corsair Carbide 200R, Monitor - Benq  XL2430T 144Hz, Mouse - FinalMouse, Keyboard -K70 RGB, OS - Win 10, Audio - DT990 Pro, Phone - iPhone SE

Link to comment
Share on other sites

Link to post
Share on other sites

They are not lazy. They must produce a game each year with priority for consoles and then they have less time to optimize for PC... Publishers (EA, Ubi etc.) are money hungry bastards in this case :)

Depends on the case. If they are being rushed by their publishers, that's different. It really sucks that consoles are prioritized.

Wishing leads to ambition and ambition leads to motivation and motivation leads to me building an illegal rocket ship in my backyard.

 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×