Hi All,
We have been using ANGLE and found huge performance
bottleneck in glLinkProgram api. It is taking up upto 600ms for few
shader's where as Opengl api just take 1 or 2 ms. This left rendering
very leggy if game engine compiles shader and link program during game play.
I also tried tweaking D3DCompile flags in
renderer/d3d/d3d11/Renderer11.cpp with "D3DCOMPILE_SKIP_OPTIMIZATION |
D3DCOMPILE_SKIP_VALIDATION", which could save upto 100ms and same shader now takes 200-300ms which is also huge if game engine doing this during game play.
Even, I play around with very trivial HelloTriangle sample provided with ANGLE. it uses a small shader just to draw triangle and glLinkeProgram api may take upto 10ms on octo core 2.2 GHz i7 machine, AMD Radeon 6600M and 6700M series with DX11 backend btw DX9 backend's performance is better than this.
I also tried to use ANGLE's Opengl backend which is not working for multi threaded rendering where as DX9 and DX11 backend doing great. ANGLE with Opengl backend crashes as soon as there is 2nd thread creates GL context on ATI machine and on NVIDIA eglMakeCurrent is always failing for 2nd thread.
Any thought on this performance issue? and Any Idea why Opengl backend is not working wheere DX9 and DX11 backend are working fine.
if anyone needed, I can share shaders and also modified HelloTriangle sample where eglMakeCurrent is failing for 2nd thread within multiple threaded rendering on Opengl backend where it does not fail for DX9 and DX11.
Thanks,
SPC