Closed Bug 677543 Opened 9 years ago Closed 8 years ago
Not clearing Web
GL framebuffer in teapot demo
This sample is not clearing the buffer, it is being composited, FF is not clearing the buffer. http://greggman.com/downloads/webgl-sdk/google/shiny-teapot/index-no-clear.html In this demo, Firefox behaves as if preserveDrawingBuffer=true except that's not the case. We need to refine the conformance test, https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/buffer-preserve-test.html as we currently pass it despite having this bug.
So, the bug is two-fold. 1. We rely on the wrong idea that WebGLContext::GetCanvasLayer gets called everytime the canvas is composited. That's not the case. No such function exists. We need to add one, maybe call it Presented(). Patch coming. 2. Additionally, we were not properly handling early return paths in GetCanvasLayer. Addressing that alone (marking as presented at the beginning of GetCanvasLayer) already fixes bug 689136.
Khronos bug with patch for buffer-preserve-test to catch this bug: http://www.khronos.org/bugzilla/show_bug.cgi?id=539
This one works everywhere and is really minimal. I wish I had known earlier about this DidTransaction callback thing. It was introduced in a commit by Roc back in March, bug 622072, http://hg.mozilla.org/mozilla-central/rev/69a9aa30f2eff07d0dbf973fd72931a50b3dbb83 Informing me of this would have spared me a lot of time!
Attachment #570505 - Flags: review?(jgilbert)
Comment on attachment 570505 [details] [diff] [review] The I-wish-I-had-known-earlier patch Review of attachment 570505 [details] [diff] [review]: ----------------------------------------------------------------- Looks good. You might add a comment to note that the function is called every time, so it's more clear why the code's here.
Attachment #570505 - Flags: review?(jgilbert) → review+
Assignee: nobody → bjacob
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla10
You need to log in before you can comment on or make changes to this bug.