Bug 84609

Summary: framebuffer binding should not be changed after canvas resize or compositing
Product: WebKit Reporter: Zhenyao Mo <zmo>
Component: WebGLAssignee: Zhenyao Mo <zmo>
Status: RESOLVED FIXED    
Severity: Normal CC: cc-bugs, jamesr, jer.noble, kbr, twiz, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 84623, 84629    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch none

Zhenyao Mo
Reported 2012-04-23 10:16:14 PDT
At the moment WebGL conformance tests framebuffer-bindings-unaffected-on-resize.html are failing, which indicates that the binding is affected.
Attachments
Patch (16.70 KB, patch)
2012-04-23 10:34 PDT, Zhenyao Mo
no flags
Patch (16.62 KB, patch)
2012-04-23 15:43 PDT, Zhenyao Mo
no flags
Zhenyao Mo
Comment 1 2012-04-23 10:34:25 PDT
Zhenyao Mo
Comment 2 2012-04-23 10:35:22 PDT
Test is synced from khronos. Please have a look.
James Robinson
Comment 3 2012-04-23 10:51:34 PDT
Comment on attachment 138379 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=138379&action=review > LayoutTests/fast/canvas/webgl/resources/webgl-test-utils.js:1144 > +var cancelRequestAnimFrame = (function() { the standard name of this function is "cancelAnimationFrame" > LayoutTests/fast/canvas/webgl/resources/webgl-test-utils.js:1145 > + return window.cancelCancelRequestAnimationFrame || window.cancelCancel...() ? what is this? > LayoutTests/fast/canvas/webgl/resources/webgl-test-utils.js:1150 > + window.clearTimeout; nothing here checks for the real name of the function - window.cancelAnimationFrame() - so this won't work in a browser with only the unprefixed version.
Kenneth Russell
Comment 4 2012-04-23 11:32:56 PDT
Comment on attachment 138379 [details] Patch The code looks fine to me; please make the test changes James points out upstream. (See https://developer.mozilla.org/en/DOM/window.cancelAnimationFrame .) Feel free to upload another version of the patch fixing those issues. r=me with those fixes made.
Jeff Timanus
Comment 5 2012-04-23 11:58:37 PDT
(In reply to comment #1) > Created an attachment (id=138379) [details] > Patch Thanks for looking into this issue, Mo. The changes in WebGLRenderingContext, and DrawingBuffer look good to me. Caching the bound framebuffer object in the drawing buffer seems like the simplest fix for this problem. Jeff
Zhenyao Mo
Comment 6 2012-04-23 12:01:31 PDT
(In reply to comment #3) > (From update of attachment 138379 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=138379&action=review > > > LayoutTests/fast/canvas/webgl/resources/webgl-test-utils.js:1144 > > +var cancelRequestAnimFrame = (function() { > > the standard name of this function is "cancelAnimationFrame" > > > LayoutTests/fast/canvas/webgl/resources/webgl-test-utils.js:1145 > > + return window.cancelCancelRequestAnimationFrame || > > window.cancelCancel...() ? what is this? > > > LayoutTests/fast/canvas/webgl/resources/webgl-test-utils.js:1150 > > + window.clearTimeout; > > nothing here checks for the real name of the function - window.cancelAnimationFrame() - so this won't work in a browser with only the unprefixed version. Gregg just fixed these issues on the khronos side. I will re-sync before landing.
Jer Noble
Comment 7 2012-04-23 13:04:10 PDT
Apparently this patch got landed in http://trac.webkit.org/changeset/114929. However, it's broken a ton of canvas/webgl tests, including: fast/canvas/webgl/texture-bindings-uneffected-on-resize.html fast/canvas/webgl/webgl-composite-modes-repaint.html fast/canvas/webgl/compressed-tex-image.html fast/canvas/webgl/webgl-viewport-parameters-preserved.html fast/canvas/webgl/webgl-composite-modes.html fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize.html
Jer Noble
Comment 8 2012-04-23 13:07:42 PDT
(In reply to comment #7) > Apparently this patch got landed in http://trac.webkit.org/changeset/114929. However, it's broken a ton of canvas/webgl tests, including: > > > fast/canvas/webgl/texture-bindings-uneffected-on-resize.html > fast/canvas/webgl/webgl-composite-modes-repaint.html > fast/canvas/webgl/compressed-tex-image.html > fast/canvas/webgl/webgl-viewport-parameters-preserved.html > fast/canvas/webgl/webgl-composite-modes.html > fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize.html Here's the failure report for Lion Release (Tests) with 35 webgl test errors: http://build.webkit.org/results/Lion%20Release%20(Tests)/r114929%20(7859)/results.html
Jer Noble
Comment 9 2012-04-23 13:13:02 PDT
Zhenyao Mo
Comment 10 2012-04-23 15:43:51 PDT
Jer Noble
Comment 11 2012-04-23 15:49:19 PDT
What is different about this patch? Have you run the testcases which failed on the previous patch?
Zhenyao Mo
Comment 12 2012-04-23 15:55:12 PDT
(In reply to comment #11) > What is different about this patch? Have you run the testcases which failed on the previous patch? webkit-test-util.js is different from the previous version, and the issue caused the failures are fixed (tested locally)
Zhenyao Mo
Comment 13 2012-04-23 16:22:29 PDT
Note You need to log in before you can comment on or make changes to this bug.