OS and the graphics APIs are very specifically designed to *separate* all of the software, including the game (running in user space “on top of” the operating system) from the hardware. This is an intentional and primary boundary that defines “what is an operating system”. This is how the OS can take responsibility for the stability of the system – it’s the *only* thing that has complete, unrestricted, hardware-level access.
But, games are running incredibly complex code on top of a very specific purpose built piece of hardware, so they need to be *as close as they can possibly be* to directly controlling the hardware. The more layers of translation that exist between some general purpose OS-provided API that “translates things safely” to a piece of hardware, the more loss in performance there is.
So, there does exist a specific chunk of code that sits “in between” and across the protected boundary layer of the operating system. That’s the driver. That’s, like, *the very definition* of an operating system driver. When you install a driver, you’re installing “a piece of software that is specifically telling the OS that it is responsible for managing the hardware”. This can be very dangerous and it’s why you absolutely need administrator permissions to, for lack of a better word, “hot patch in a new piece of the OS” that’s allowed this level of access.
(just ask CrowdStrike – it wasn’t a Windows error that took down so many computers, it was a *CrowdStrike driver error* – the chunk of software that promised Windows “I won’t mess things up if you give me extra access”… went and messed things up.)
So when a new game comes out, the driver update is like, “Sure, I know you *can*, with some performance loss, render this scene, but it’s not going to be the most efficent way”. And that could work just fine!
But the driver updates essentially say “We’re going to provide a Crysis-specific (or whatever game) flavor of the driver that grants safe, but much more optimized/performant, access to the GPU so you can run the code on it as fast as possible”.
So you can’t just grant unrestricted access to the hardware, and you could – but don’t want to – make all code use the safest, general purpose way of doing things, so patching in the flavor of optimizations for each game is the compromise.
Latest Answers