Hi,
We (developer team) are in the process of rendering effects between DirectX and OpenGL ES(Based on Angle-DirectX) which connect our 3d mobile rendering engine and old desktop codes.
We are at a point where complicated shaders are compiled so slowly. I try my best to search and consult, there are several (uncertain) solutions at present:
1. Shaders are compiled so slowly mainly due to the translation from "GLSL to HLSL". I think it might be possible to create GLES program from a HLSL shader (pre-cached) But didn't find any extensions for pre-translation and create program from HLSL shader. Is it feasible?
2. Every shader are compiled and could retrieve binary data with glGetProgramBinary. Is the binary format compatible with "same angle library and difference hardware devices" ? If it's true I could pre-compiled all shaders to file and create program from cached binary fast.
3. EGL_ANGLE_program_cache_control could cache program binary for display. Is the results of eglProgramCacheQueryANGLE compatible with "same angle library and difference hardware devices" ? If it's true I could save results of eglProgramCacheQueryANGLE to file and start program with cached binary file and the compile would be also fast.
Which of these three solutions is correct?
If it is not feasible, is there a recommended way to solve my problem?
Thanks in advance!