No review because this is mostly just syncing us with the upstream,
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/
as well as adjusting to test harness changes (now loading test lists asynchronously) and a patch to the harness itself which I'll send upstream (see fix-webgl-harness-async.patch)
No review because this is just syncing us with upstream:
http://code.google.com/p/angleproject/
This is also doing some cleanup, removing stale/empty files and updating patches.
The main benefit from this update is that long-identifier-shortening has been fixed.
The main change is: remove the WebGLRectangleObject inheritance from
WebGLFramebufferAttachment, and instead have WebGLFramebufferAttachment
query its texture or renderbuffer for their dimensions, when needed.
In the course of doing this, a couple other needed changes appeared:
- let WebGLTexture::ImageInfo inherit WebGLRectangleObject, so that WebGLFramebufferAttachment can return a pointer to it right away in the texture case
- add a FramebufferRectangleObject() method to WebGLContext, that will return the dimensions of the bound FBO if there is one, otherwise will just return the contexts' own dimensions.
- in order to do that, it was very convenient to let WebGLContext inherit WebGLRectangleObject so that FramebufferRectangleObject() could just return a pointer to that in the no-bound-FBO case.
- move WebGLRectangleObject up in the file, above WebGLContext
- there was a plain bug in WebGLFramebufferAttachment::HasAlpha(), we were not using the right image info within the texture.
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.
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 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.
This code is copied mostly from WebKit. It strips out comments from shader source code before actually compiling it, so that the comments can have illegal characters. It was benchmarked and it was noted that a test attached to the bug ticket took about twice as long with these changes.
This includes the patch from bug 680722 to check for illegal characters.
This code is copied mostly from WebKit. It strips out comments from shader source code before actually compiling it, so that the comments can have illegal characters. It was benchmarked and it was noted that a test attached to the bug ticket took about twice as long with these changes.
This includes the patch from bug 680722 to check for illegal characters.
There was actually some surrounding logic breaking 0-size textures. It was because there was code that basically checked "did uint=negative_num*other_vars overflow". For incorrect validation, two copies of the same variable (one stored internally and one passed in) were available to the function, but the one stored internally was being validated, while the version passed in wasn't. The fix for this was simply checking the passed var instead.
The bindX() commands were erroring with INVALID_VALUE when they're instead supposed to simply fail silently when they're given a deleted object. Additionally, the getParameter() function was failing after its associated variable was deleted, sometimes returning values when it should return null.
* * *
Bug 681835: WebGL fix for previous patch which introduced a bug with deletion
DeleteRenderbuffer and DeleteFramebuffer weren't checking if the deleted buffer was the currently bound buffer before deleting them. This patch implements this functionality. A separate test case patch was also submitted to Khronos:
http://www.khronos.org/bugzilla/show_bug.cgi?id=518
This test is valid, but flaky as it relies on GC happening at a particular time. A recent JS engine change making it actually happen caused it to actually catch a bug we've always had in the OES_texture_float impl, see the discussion on bug 630672, and I don't have time to fix that now.
This patch disables the quickCheckAPI.html page, with this comment:
this test causes whichever comes after to intermittently time out.
forcing a GC run doesn't solve this issue. Could be something about using a random amount of memory that
can be too high, causing e.g. swapping.
We haven't decided what the behaviour for source rects larger than
the source image should be, and 4ede7b9b55bc breaks content like
20thingsilearned.com.
This patch disables the quickCheckAPI.html page, with this comment:
this test causes whichever comes after to intermittently time out.
forcing a GC run doesn't solve this issue. Could be something about using a random amount of memory that
can be too high, causing e.g. swapping.
Just an ANGLE update, plus updating the list of failed tests on WinXP, also now properly reporting on unexpeced success (using todo(true) instead of ok(false))
This blocks using cross-domain images and tainted canvases as WebGL textures, in response to a timing attack allowing to get approximations of cross domain images' pixel data.
This is known to break legitimate Web content (e.g. bug 662570), so it's sad to have to land this. In the hopefully near future, a way forward will be implemented allowing affected Web content to resume working: we will allow cross-domain textures that have CORS approval. This is being coordinated with other WebGL implementers on the WebGL mailing lists.
GLContext::ClearSafely() wasn't really safe, it was making naive assumptions about GL state and as a result, a WebGL script could obtain an uninitialized backbuffer.
This ANGLE update fixes bugs, brings large performance improvements, and adds major new features that web devs are looking forward to: vertex shader texture lookup and float textures.
http://code.google.com/p/angleproject/
This update is also needed because the version we're currently using is the chrome_m10 branch and that's no longer maintained. This update will make it much easier to apply security fixes if needed.