title: Are OpenGL shaders compiled on the GPU or the CPU? How does binary output vary by GPU manufacturer?
body: <p>First; how are OpenGL shaders compiled? Are they compiled on the CPU, or the GPU, or does it vary by implementation? Do different vendors have different binary outputs; if so, is it possible to cross-compile a binary for one GPU type on another GPU? I'm developing a game that I am planning on running on Intel GFX chips, ATI cards, and NVidia cards. I would prefer to ship only the binary parts of the shaders, without having to compile the source on the client computers. Is this possible? How does the process of shader compilation work?</p>