Closed Bug 677543 Opened 9 years ago Closed 8 years ago

Not clearing WebGL framebuffer in teapot demo


(Core :: Canvas: WebGL, defect)

Not set





(Reporter: bjacob, Assigned: bjacob)




(2 files)

This sample is not clearing the buffer, it is being composited, FF is not clearing the buffer.

In this demo, Firefox behaves as if preserveDrawingBuffer=true except that's not the case.

We need to refine the conformance test,
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:
Attached patch WIP patchSplinter Review
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,

Informing me of this would have spared me a lot of time!
Attachment #570505 - Flags: review?(jgilbert)
Depends on: 622072
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
Closed: 8 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla10
You need to log in before you can comment on or make changes to this bug.