How the hell do they will work? What do they do? Why do I need to update them for certain games or applications to work? I like to think I know a decent amount about personal computers but I have no idea. There was a game on my computer that wouldn’t play when I opened it and the game would crash every time. I updated my drivers and it ran with no issue. The game never had any updates and I never changed any parts of my computer why did the game randomly stop working with no changes? Why does updating drivers work to fix it and what do they do?
In: 28
Device drivers are basically translation software that lets the operating system talk to the hardware and tell it what to do. Because a given operating might be running on all kinds of different hardware setups, rather than having all the possible instructions as part of the operating system, they let the hardware manufacturers design and distribute their own sets of instructions.
With video games in particular the video card manufacturers have a big financial interest in having their cards be the best at running all the newest games. So they actually watch new game releases and will update their drivers to optimize functionality with specific games in mind when they come out. They might also periodically figure out more efficient or more effective ways of translating software instructions to hardware actions. Instead of waiting for a new generation of cards to be released to release this new functionality, they’ll package that in to driver updates and let game developers use those features immediately. This is good for developers because they can use the newest features without worrying about backwards compatibility, and good for video card manufacturers because it extends the functional lifetime of their cards.
That’s almost certainly what happened in your case – you had a pretty old driver installed that didn’t include some set of instructions or specific functionality that the developers of that new game had made use of. In effect your graphics card was rendered incompatible with this new software. But, it’s fine, because the video card manufacturer put those new features in a driver update.
Drivers are the “middle man” between your operating system/software and hardware (your GPU in this case, you could and you do have drivers for other devices as well).
Every hardware device has it’s own “language” (instruction sets) and the driver is what translates the instructions your game sends out so that the GPU can understand them and do what the game asks it to do, since we’re talking GPU’s in this case it would be drawing things on screen.
Why updating drivers fixes issues: because drivers are not always perfect and they get improved over time. Additionally GPU manufacturers (specifically NVIDIA/AMD/Intel etc.) work closely with game developers and if a game developer needs something that is currently not possible without a slow workaround the GPU manufacturer might add it to the driver so that it isn’t a workaround anymore and done at the lowest possible level and that’s why drivers get releases made specifically for new games which might fix crashes and other rendering issues.
Why your game randomly stopped working I can’t say, technically it should not but it’s possible a windows update broke something or windows decided to downgrade your GPU driver during an update (has happened to me in the past).
Drivers are sort of a translator that allows different parts of hardware to work together. A PC manufacturer would have no control over what graphics card is installed and a graphics card manufacturer would not know what kind of PC it will be installed in. Generally, the graphics card manufacturers write a driver that understands a certain number of instructions and that can be somewhat standardized. So the software writers (like game developers) need to pass the right instructions and the driver translates that to the graphics card.
Over time, these instructions might get more sophisticated and updated as graphics cards get better. The software developers use the new instructions to talk to the graphics card but if the driver isn’t updated, it won’t recognize them and the software fails to work. The graphics card manufacturers update drivers so that it can (hopefully) understand the new instructions while still working with an older model graphics card. This is why drivers need to be updated – it is to synchronize the language spoken by all the different parties that develop things for the PC.
Gonna answer the portion about why you need to update them cause others covered the other ones
We’re able to have two different products developed simultaneously that fit together because we have established standards that each meet. One of those is the graphics API like DirectX or Vulkan.
Those libraries need to be updated for security reasons among other things, and in order to keep working, those drivers need to update their own code in order to keep working properly.
Certain features may need to be removed because they’re a vulnerability on the operating system side and as a result, the driver needs to find a different way to do that same task. This happens a LOT as new vulnerabilities are discovered every day. You see these all the time in tech news.
Basically the graphics card (or any hardware device) and operating system both need to write to meet a mutual standard. The side of the hardware that does that is called the driver. The side of the OS is called the API, the application programming interface, which is a way to access the operating systems resources with a standard calling convention.
The way we do this for USB devices is similar, it uses a serial bus interface standard that enumerates the ways data should be sent back and forth to work properly. That standard base standard is called the Serial Peripheral Interface standard.
Imagine this case, a manufacturer that sells packed cotton as the software, and your packaging workers that works in other countries as the GPU, now you want to tell your worker to pack 100g cotton, but here’s an issue, you can only speak in English and some Spanish and French but your packaging worker can only understand Thai. To solve this you’ll need a middleman that can understand English and translate your instructions to Thai so your worker can pack 100g cotton, and that is like the GPU driver, translate the code from your software to something a GPU can understand.
For why you need to update the driver to be able to play the game, now imagine that after some research you saw that there’s potential to optimize your earnings by selling 60g cotton, but without telling the middleman there’s no way they will understand that you want to sell 60g cotton, so when you instrument them they would still try to pack 100g cotton, by updating the new stuff to your middleman, now your middleman can instruct the Thai worker that they need to change to 60g packaging.
A driver tells the operating system how to use hardware.
In school, as a kid, you needed to learn how to write. The teacher didn’t just hand you a pencil, and you could write an essay. You had to be taught how to do it. That’s what the driver is, instructions on how to do its job.
Keeping the driver up to date is just like any other piece of software. It fixes bugs and makes it work better.
The pipeline in how a game talks to your graphics card is a bit complex.
In the old days, developers used to code directly for certain hardware. If you are old enough or have played old games, you might notice that they had options for selecting specific sound cards, video cards, etc. That required a lot of work on the developer’s part, so these days, it goes more like this:
User input -> game engine -> Direct X/OpenGL/Vulkan -> Video driver -> graphics card.
Now, depending on the version of Direct X (or the other APIs), the way the calls are made may differ. Direct X has different ways of doing lighting or example, so the game will tell Direct X: “hey, light up this scene in this way” which then tells the driver what it needs to do which then gets to the actual hardware doing the processing.
There may be bugs in any of these software layers or sometimes, there are new ways of doing things that were not implemented in older drivers. If Direct X and the driver don’t talk the same language, something won’t work. It may not be game crashing, but it does happen.
Considering how many software layers there are, sometimes edge cases will happen too.
Some games will even check for drivers to make sure you’re on a known working version. This happened with Baldur’s Gate 3 for me where it was basically hey: you’re two versions behind, we can’t guarantee the game will work smoothly.
I’ve seen Deliver Us the Moon not like DX12 on AMD video cards until a driver update this year for example. Clearly, the game was making an API call on DX12 that caused some crash to happen.
Drivers are the “user manual” for your hardware. Your OS uses the “user manual” to do what it needs to with your new hardware.
Sometimes the instructions in the old manual are slightly wrong and lead to unintended behavior, so you print a second edition of the manual, with a better set of instructions on how to perform a task.
“Example: to connect two pieces of wood, use a hammer and a nail”
But the nail doesn’t grip well, overtime they come loose. Second edition:
“For improved grip between the two pieces of wood use a cordless driver and wood screws”
The analogy of the driver being a “user manual” is an over simplification, but works in this case.
Latest Answers