The driver can already do that without the need of new extensions, there's no reason why it cannot hash the shaders and persist them on disk.Originally posted by Jan:
No, you wouldn't need to detect the hardware everytime.
I would do it this way: Ship the app without precompiled shaders. When the app runs, send the shader to the hw, get the compiled binary, store it on disk. The next time you run the app, check, wether the binary is available, already, and send that instead. If the hw complains, just send the original shader.