These IIDs were used in the past to check, using do_QueryInterface, that the objects passed to WebGL functions were really of the expected type. Now that WebGL classes are marked 'builtinclass' in the IDL and that check has been removed (see bug 638328), none of that is needed anymore.
This patch should improve performance of the robustness timer by not resetting
it each time a draw operation happens. It still checks if there's any activity
and, if not, it will stop firing it. It includes a single extra timer firing
after activity dies to make sure we don't miss anything. Also includes a fix for
robustness being marked as existing when it really isn't.
We always have cairo surfaces now instead of having NULL ones. We should
check the status instead. This fixes crashes with the quartz and skia
azure backends.
Added some code to print to dump output of WebGL mochitest failures. Also added
special code to handle incorrect reference images. It will now provide the user
with a way to compare the reference and actual drawings.
Antialiasing can be blocked through the downloaded blocklist now, as well as
static analysis compiled into the OS-specific handlers for graphics features.
The upstream is
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/
This changeset also updates our lists of failing tests, and the garbageCollect() call before each test page is now done on all platforms, instead of only on linux, as it's now clear that we've been having this problem everywhere.
The upstream is
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/
This changeset also updates our lists of failing tests, and the garbageCollect() call before each test page is now done on all platforms, instead of only on linux, as it's now clear that we've been having this problem everywhere.
If we request alpha and it isn't enabled, or we request it off and it gets
enabled, we now fail the pbuffer creation and fall back to FBOs. This is bad for
performance but allows us to pass the conformance test in this case.
We are supposed to clear the WebGL framebuffer after it's been presented to the compositor and before the next draw operation, and were using the wrong way to know when we got composited. The right way is DidTransactionCallback.
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.