This patch implements ARB_robustness on GLX and allows scripts to handle driver resets
through events. The changes in this patch are very sweeping; they hit almost
every NS_IMETHODIMP function within WebGLContextGL.cpp and WebGLContext.cpp.
More work must be done on this to support EGL_CONTEXT_LOST.
This is syncing us with the ANGLE project at
http://code.google.com/p/angleproject/
Also, with this new ANGLE revision, two WebGL conformance tests are now passing on windows so this patch removes them from failing_tests_windows.txt.
--HG--
rename : gfx/angle/angle-instrinsic-msvc2005.patch => gfx/angle/angle-intrinsic-msvc2005.patch
This is just syncing us with the upstreal WebGL conformance tests from
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/
Also reenabling the quickCheckAPI tests, updating the list of failing tests (only one part of quickCheckAPI added to the list) and added 3 lines of code to ignore empty lines in the lists of failing tests to get a correct count.
We've seen frequent intermittent failures in WebGL tests since WebGL AA landed. This turns out to be OOM conditions leading to failure to create WebGL contexts, due to the fact that the JS engine keeps too many unreferenced WebGL contexts around before it decides to GC (bug 617453). This patch makes us trigger the GC before every WebGL test page (there are 300 of them) which has proved to solve the problem on tryserver, with 18 green runs without any orange: https://tbpl.mozilla.org/?tree=Try&rev=789cf49fdc63
Failures occured most of the time on 32bit linux-pgo but have been observed on 64bit too, see bug 695947 comment 6.
We've seen frequent intermittent failures in WebGL tests since WebGL AA landed. This turns out to be OOM conditions leading to failure to create WebGL contexts, due to the fact that the JS engine keeps too many unreferenced WebGL contexts around before it decides to GC (bug 617453). This patch makes us trigger the GC before every WebGL test page (there are 300 of them) which has proved to solve the problem on tryserver, with 18 green runs without any orange: https://tbpl.mozilla.org/?tree=Try&rev=789cf49fdc63
Failures occured most of the time on 32bit linux-pgo but have been observed on 64bit too, see bug 695947 comment 6.
WebGL objects keep an array of refptrs of other WebGL objects owning references to them. In practical cases, the size of this array can oscillate between 0 and 2 at high frequency. nsTArray throws away its whole storage (mHdr) when its size hits 0. This patch makes us use a nsAutoTArray with a pre-allocated size of 2 or 8 depending on WebGL object types.
This patch does 3 things on Macs with Intel GPUs:
* prevents attaching a cube map to a framebuffer.
Test case: http://codeflow.org/webgl/irradiance/
* skips glGenerateMipmaps on cube maps
* since cube maps are now missing their mipmaps, prevents setting on them a minification filter that requires a mipmap, but only from OpenGL's point of view, not from WebGL's.