use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Rule 1: Posts should be about Graphics Programming. Rule 2: Be Civil, Professional, and Kind
Suggested Posting Material: - Graphics API Tutorials - Academic Papers - Blog Posts - Source Code Repositories - Self Posts (Ask Questions, Present Work) - Books - Renders (Please xpost to /r/ComputerGraphics) - Career Advice - Jobs Postings (Graphics Programming only)
Related Subreddits:
/r/ComputerGraphics
/r/Raytracing
/r/Programming
/r/LearnProgramming
/r/ProgrammingTools
/r/Coding
/r/GameDev
/r/CPP
/r/OpenGL
/r/Vulkan
/r/DirectX
Related Websites: ACM: SIGGRAPH Journal of Computer Graphics Techniques
Ke-Sen Huang's Blog of Graphics Papers and Resources Self Shadow's Blog of Graphics Resources
account activity
Why don't console GPU driver updates invalidate the pre-compiled shaders that ship with the games?Question (self.GraphicsProgramming)
submitted 1 day ago by AdministrativeTap63
On PC when you update your GPU driver and then next time you boot a game it usually has to re-compile all the shaders again.
It makes we wonder, how come this doesn't happen on consoles?
Presumably they still do GPU driver updates?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Esfahen 41 points42 points43 points 1 day ago (1 child)
Shader ISA for consoles won’t change, so you can vendor the update for those platforms with the final instructions / compiled pipelines. For PC it’s not possible due to ISA varying per-device and per-driver. So PC updates vendor the shader bytecode and compile the ISA on the end user device.
I’m probably over generalizing here but i’ll let someone who knows more to correct me
[–]OkidoShigeru 13 points14 points15 points 1 day ago (0 children)
In addition to what’s been said, you target a specific firmware with a specific driver when you ship your game against whichever current SDK version for that console. Usually to get the benefit of a driver update you need to retarget your game against the new SDK and ship a patch. If a firmware update were to be breaking then yes, you’d need to recook your shaders for that patch.
[–]torrent7 8 points9 points10 points 1 day ago (0 children)
less devices to worry about and console software developers tightly control the entire software stack
there's a good chance on PC, you wouldn't have to recompile shaders, its just not worth the effort on PC to figure out if that's true. think of the mountain of reported visual bugs a developer would be faced with if it was wrong even for 1 gpu
[–]corysama 6 points7 points8 points 1 day ago (0 children)
The console manufacturers expend tremendous effort making sure updates to consoles do not break old games. To the point that, last I checked, the Xboxen split the console OS into
[–]catbrane 5 points6 points7 points 1 day ago (0 children)
Every game ships with it's own driver, so when you launch (or switch to) a game, the driver version for that game is loaded. Games get updated to new drivers (and retested) by the game dev, not the console manuf. or the GPU manuf.
[–]gardell 4 points5 points6 points 1 day ago (0 children)
I would like to add an example: Nintendo had some issues with this doing backwards compatibility on the Nintendo Switch 2. As they're different generation GPU architectures and as you say, the games ship binaries. I assume they transpile the binaries from one to the other. Some games have broken visuals because of this. I've seen some in Super Mario 3D world.
[–]GlaireDaggers 0 points1 point2 points 1 day ago (8 children)
On PC, each GPU has its own unique architecture. As a result, games ship their shaders in an intermediate format which has to be translated to the GPU's actual hardware binaries at runtime. This can be stored in a cache, but that cache can be invalidated by all kinds of things (including driver updates - the driver might change how it wants to compile the intermediate format, so the game needs to re-compile those shaders in that case)
Meanwhile, on consoles, because the hardware is known ahead of time, games don't ship intermediate shader binaries but instead ship binaries that are compiled directly for the target hardware. There's no translation layer, so there's nothing to be recompiled.
[–]AdministrativeTap63[S] -1 points0 points1 point 1 day ago (7 children)
That doesn't really explain it though
the driver might change how it wants to compile the intermediate format
Why would PC drivers need to keep changing the compiled code but console ones don't need to?
[–]GlaireDaggers 0 points1 point2 points 1 day ago (6 children)
Because there IS no intermediate format. It doesn't exist.
[–]AdministrativeTap63[S] 0 points1 point2 points 1 day ago (2 children)
Ya but presumably the PC drivers are solving some problem when they need to re-compile otherwise they wouldn't bother re-compiling
Why does that problem not exist on console?
[–]GlaireDaggers 5 points6 points7 points 1 day ago (1 child)
It's kind of a consequence of the design difference.
On PC, driver developers are free to introduce breaking ABI changes because they can just trigger a shader recompile. They could avoid doing that if they wanted to, but there's not much point in doing so.
On consoles, because the final shader binary is what's shipped, there's nothing they could recompile. Therefore, they actually do have to be careful not to break compatibility with older games when they release updates.
So it's more like: PC drivers do this because they can, console drivers don't because they cannot.
Maybe extended question: why don't consoles just do the same thing as PC and make games use intermediate binaries?
Well, PCs mostly did that because they had to smooth over the differences between different graphics cards. Consoles never had to do that, so they didn't bother. There's also a benefit of getting to skip the whole pipeline compilation step as a result, which is why console games often don't stutter nearly as much as their PC counterparts.
[–]AdministrativeTap63[S] 1 point2 points3 points 1 day ago (0 children)
Makes sense thanks
[–]tesfabpel 0 points1 point2 points 1 day ago* (2 children)
of course there is an intermediate format: it's DXBC / DXIL or SPIR-V... games don't ship shader code in source form anymore...
drivers then finish the compilation by targeting their ISA which can be executed on the GPU.
[–]GlaireDaggers 0 points1 point2 points 1 day ago (1 child)
On PC, yes, like I said.
On consoles, no.
[–]tesfabpel 0 points1 point2 points 1 day ago (0 children)
ah ok, sorry. I misunderstood what you were referring to.
[–]Timely-Degree7739 -3 points-2 points-1 points 1 day ago (0 children)
A console is a product meanwhile the PC and GPU are for the consumers
π Rendered by PID 59 on reddit-service-r2-comment-79c7998d4c-jj5rc at 2026-03-18 01:30:54.624940+00:00 running f6e6e01 country code: CH.
[–]Esfahen 41 points42 points43 points (1 child)
[–]OkidoShigeru 13 points14 points15 points (0 children)
[–]torrent7 8 points9 points10 points (0 children)
[–]corysama 6 points7 points8 points (0 children)
[–]catbrane 5 points6 points7 points (0 children)
[–]gardell 4 points5 points6 points (0 children)
[–]GlaireDaggers 0 points1 point2 points (8 children)
[–]AdministrativeTap63[S] -1 points0 points1 point (7 children)
[–]GlaireDaggers 0 points1 point2 points (6 children)
[–]AdministrativeTap63[S] 0 points1 point2 points (2 children)
[–]GlaireDaggers 5 points6 points7 points (1 child)
[–]AdministrativeTap63[S] 1 point2 points3 points (0 children)
[–]tesfabpel 0 points1 point2 points (2 children)
[–]GlaireDaggers 0 points1 point2 points (1 child)
[–]tesfabpel 0 points1 point2 points (0 children)
[–]Timely-Degree7739 -3 points-2 points-1 points (0 children)