Testing a WebGL 2 demo from a partner, fitting it in the emunittest suite as a timedemo, and running with ANGLE enabled or disabled on a GTX 980 Ti and Core i7-5960X Windows 10 PC, we have the following results: (lower is better) webgl.disable-angle=false (default): Timescore: 103999.32. webgl.disable-angle=true (default): Timescore: 68069.82. The slowdown from ANGLE is about 1.53x. Looking at a performance profile however, it is difficult to pinpoint a small set of call sites that would be the culprit, but it looks like a "death by a thousand cuts" type of scenario. The demo is the same as in bug 1329815, which focuses on a detected performance problem in the scenario that ANGLE has already been disabled.
A number of these issues are tracked on the ANGLE bug tracker: - https://bugs.chromium.org/p/angleproject/issues/detail?id=1818: TransposeMatrix<> in list of hottest functions, consider avoiding specific -> generic routes - https://bugs.chromium.org/p/angleproject/issues/detail?id=1814: BitSetIterator comes up often in profiles - https://bugs.chromium.org/p/angleproject/issues/detail?id=1694: ProgramD3D.cpp SetIfDirty() is an antipattern - https://bugs.chromium.org/p/angleproject/issues/detail?id=1385: D3D: Consider removing the redundant glUniform call filtering
Created attachment 8836762 [details] BitSet64.png Here's a profiling snapshot of the biggest hotspots that ANGLE typically shows.
Created attachment 8836763 [details] Bitset64_2.png Another run for noise reduction, looks quite same.