FYI, I think precompiling all shaders, many of which never get used by the program, will introduce a big delay at load time on some cards. I'm going to back off of this idea and consider shader binaries stored on the user's machine. This is kind of messy though because you have to account for file changes and different GPUs being swapped out, so it will require a lot of testing.