At the most basic level, a driver is responsible for translating from the generic high-level graphics framework (e.g. DirectX) into the primitive instruction set and I/O protocol which is understood by the GPU itself. The high-level graphics framework is what is used to build game engines, and game engines are what manage the art assets and agent scripts which comprise a video game. The translation handled by the graphics driver is quite complex and can have bugs, which are usually fixed by the GPU manufacturer (e.g. Nvidia) in concert with the graphics framework maintainer (e.g. Microsoft).
This layer-cake model means that game developers can build the game without having to understand the intricacies of the game engine, while game engine developers only need to understand the graphics framework (e.g. DirectX) and don’t need to understand the details of the GPU itself.
That’s the most basic level. The actual reality of it is considerably messier. As a practical matter, graphics drivers often have game-specific code which is designed to optimize specific game engine components or even specific scripted sequences within specific games built on specific game engines in order to improve their performance beyond what would be possible when strictly living within the layer model I outlined. These are very hacky tricks, but they’re as old as graphics cards themselves and they allow for performance which far exceeds what would otherwise be possible. High profile game developers will work with graphics card companies to insert these types of optimizations and get direct help on improving their game engine. Most recently (and quite infamously), we saw what an impact this could have with how well Jedi Survivor performed on AMD GPUs at launch and how poorly it performed on Nvidia. Fixing such issues is a matter of updating the game engine to better utilize the GPU (meaning game developers need to understand “through” the graphics framework abstraction down to the hardware) as well as updating the graphics drivers to better understand the game.
This is *most* of what is changing when you update your graphics drivers: bug fixes and game-specific hacks. In some rare cases, the GPU microcode can be updated to resolve or work around problems in the hardware, but this is very uncommon.
Latest Answers