Closed
Bug 724143
Opened 13 years ago
Closed 7 years ago
Background and WebGL canvas painted at different times on B2G
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: joe, Unassigned)
References
Details
B2G's Gaia interface has a WebGL canvas, on which is painted the app launch screen (lots of icons). When swiping from one screen to another (as multiple screens are available, like on the iPhone), very frequently the background of the webpage that is Gaia shows through.
I've done some debugging here, and whenever the canvas layer needs to be repainted (i.e., CanvasLayerOGL::mDirty is true), when the MakeCurrent call in UpdateSurface is called <http://mxr.mozilla.org/mozilla-central/source/gfx/layers/opengl/CanvasLayerOGL.cpp#182>, the page repaints with the background of the web page.
I've confirmed with the patch on bug 724137 that SwapBuffers isn't being called, so it's not clear to me how the ThebesLayers that defines the non-canvas part of the webpage (i.e., the background and the title bar, etc) are even being drawn to the screen.
The symptom here isn't quite clear to me yet. I think we're using slightly different terminology, and I suspect a screenshot is worth 1000 words. I'll have an akami on monday so can test then.
We can definitely paint the canvas independently of the background, but they should both be composited to screen only if they're consistent with each other. That's the empty transaction machinery romaxa and roc built.
Reporter | ||
Comment 2•13 years ago
|
||
Akami?
I'll do a little video on Monday, which will hopefully clear things up.
I concur that the canvas and background can be painted independently. The thing is, the behaviour I'm seeing makes no sense from EGL's point of view. We don't draw directly to the front buffer, so it shouldn't be possible for just setting another context as current to swap the buffers.
Comment 3•13 years ago
|
||
Could this be an issue with resolving one of the two?
Reporter | ||
Comment 4•13 years ago
|
||
Chris, using gralloc, does b2g allocate a real double-buffered context?
Akami is similar to the maguro but slightly different. Same class of HW.
On gonk, our "screen GL context" is for the AndroidNativeWindow we allocate here http://mxr.mozilla.org/mozilla-central/source/widget/gonk/nsWindow.cpp#79 . You can chase this down into the android source, but yes it wraps two fbs directly allocated from gralloc.
I don't know about the webgl contexts we're allocating.
Comment 7•13 years ago
|
||
I am debugging video on the akami and the video used to get horrible flickering with the background shining through during playback. This went away when I manually set double buffering to false. Our working theory is that the drivers on the akami return the same frame buffer even if you try to double buffer a context, effectively making the context not double buffered.
Comment 8•12 years ago
|
||
Is this still an issue?
Comment 9•7 years ago
|
||
Mass closing as we are no longer working on b2g/firefox os.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
Comment 10•7 years ago
|
||
Mass closing as we are no longer working on b2g/firefox os.
You need to log in
before you can comment on or make changes to this bug.
Description
•