>Depends on the D3D version (DX9 binaries are different than DX11 binaries)
These can be just 2 different extensions.
>You need the D3D compiler to sign your binaries (DX will refuse to run unsigned binaries)
So, developer can use D3D compiler to produce binaries. There are 2 dev pipelines I see:
- Write GLSL, use WEBGL_debug_shaders to get HLSL, compile on your own (I do it myself to check shader asm in weird cases).
>It only works on windows
Yes, that's why it can be an extension. Windows isn't a small percent.
>we don't want to make "Windows only WebGL". We've fought long and hard to not end up exactly there
I certainly don't want "Windows only WebGL" as much, as you do. However, platforms differ, and we must take their differences into account if we want WebGL to evolve. Currently it's quite possible to have all your textures in, say, PVRTC format. Does it create an "iOS-only WebGL"? Maybe, but nobody does that, every sane developer will supply standard jpgs/pngs, if the compressed format is not supported.
> cross-compile shaders for those, and supply those shaders, and so forth. Dragons live there.
We already do this for textures. It's not that scary, and it frees a lot of VRAM ;)
>OpenGL shader binary
I admit, I'm not that familiar with desktop GL (my experience is only D3D and WebGL). It's a pity if it's that bad.
I still believe that using precompiled shaders is a very good idea for DX9/DX11 platforms. It's better to be faster on Windows, than being slow everywhere.