3 ms·
Unverified Rumor, so a healthy grain of salt is required: A friend at a large GPU maker was mentioning that a lot of "squeezing all possible compute abilities"
by KiranRao0 5y ago
Unverified Rumor, so a healthy grain of salt is required:
A friend at a large GPU maker was mentioning that a lot of "squeezing all possible compute abilities" for games are in the driver, rather than in the game itself. Which is why you'll often see significant performance improvements with driver updates after a game has launched.
It makes sense as it's in the GPU makers' best interest to have the maximum performance, or else they'll be crushed in benchmarks.
- AussieWog93 5y agoMy old boss worked on the PC port of Dead Space 3. He actually did spend significant effort optimising his shaders to get good performance on PC, but an Nvidia driver update would silently replace some of his code with hardware-optimised shaders they'd written themselves (similar to how Windows 95 had a hard-coded fix for Sim City). This was never advertised publicly, and the only reason he found out was because he debugged the executable and noticed his shaders were never actually being executed.
- philistine 5y agoCan you say more about the hardcoded fix for Sim City? This sounds fascinating.
- alxexperience 5y agoEDIT: Was rushing, but updated with the exact quote here so people don't need to go digging :) I believe this is the story OP mentioned [1]. > Windows 95? No problem. Nice new 32 bit API, but it still ran old 16 bit software perfectly. Microsoft obsessed about this, spending a big chunk of change testing every old program they could find with Windows 95. Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here’s the amazing part: On beta versions of Windows 95, SimCity wasn’t working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn’t free memory right away. That’s the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95. [1] https://www.joelonsoftware.com/2000/05/24/strategy-letter-ii-chicken-and-egg-problems/ https://www.joelonsoftware.com/2000/05/24/strategy-letter-ii...
- AussieWog93 5y agoYep, that's exactly what I was referencing in GP!
- throwaway09223 5y agoIt is absolutely the case that drivers contain code to fix errors or optimize away mistakes made in top tier games. This is well-known and often can be demonstrated by renaming the game binary or making other changes. Sometimes this happens with the blessing of the game company, and sometimes it doesn't. Or, sometimes GPU folks will send a team over to help the game studios fix performance issues during their development. There are some studios who push the envelope and make beautifully optimized games. There are many, many more who ineptly cobble together components and make something that runs well-enough.
- ziml77 5y agoThe reason that you see drivers release with specific games mentioned is exactly because of this. And also why the driver installer packages are so large. What I can't say is how much of a difference the GPU manufacturers work makes on average. I would have to assume there's a reasonable bump otherwise it wouldn't be worth it.
- p1necone 5y agoYou get an absolutely massive performance boost by using newer drivers on Halo Infinite. I don't know exactly why, but it never goes above about 36 fps on low settings on older (AMD, 6800xt) drivers, but hits smooth 80+ at 4k on high with the drivers that mention Halo Infinite in the patch notes.
- ziml77 5y agoThat’s wild. But if they have cases where gains can be that much then it’s very clear why it’s worth it to fix the the stuff that other companies wrote
- p1necone 5y agoYeah - I assume this particular case must be due to an actual bug in the games engine, rather than just poorly optimized shaders etc. I'm curious to know exactly what causes it though.
- dundarious 5y agoModern CPUs are extremely capable superscalar processors. In order to properly feed them, you must design with SIMD in mind. Even then, you can almost never rely on compiler auto-vectorization, and you must use intrinsics yourself. This is necessary even for such simple things as automatically opening doors when you move near them. In other words, many many things that are never even done on the GPU. Of course, after release, the biggest improvements come from outside the game dev team. The point is not to forget all the improvements very carefully and skillfully baked in before release, just because consumers don't see the delta.