Open Bug 1136734 Opened 10 years ago Updated 2 years ago

Bypass compositor for WebGL canvas elements in fullscreen mode.

Categories

(Core :: Graphics: CanvasWebGL, defect, P3)

defect

Tracking

()

People

(Reporter: mikedeboer, Unassigned)

References

()

Details

(Whiteboard: [gfx-noted][games:p3][platform-rel-Games])

See URL for the relevant thread on the WebGL mailing list. Quote from the first message in that tread: "One of the issues with WebGL in particular on mobile is because WebGL has to be composited it loses a lot of performance. What I mean is WebGL renders to a texture. That texture is then drawn into the backbuffer in the correct order with other HTML elements. This effectively means a fullscreen WebGL app is drawing an entire extra screen worth of pixels vs a native app." So once a canvas element goes fullscreen, it is expected that we can get quite the performance boost and framerate improvement if we can bypass the Gecko layout pipeline - the compositor - and write to the (GL) backbuffer directly. This was also discussed on the dev-platform mailing list, starting here: https://lists.mozilla.org/pipermail/dev-platform/2015-January/008277.html
Thank you for bringing this discussion here too, we'll be following this one closely as well! Again, if you ever need a real-life example of such usage or potentially a testbed game, feel free to send me a mail and we'll give you access to Project Atlas' closed alpha.
Yep, this is the plan. It'll take a little work, but it'd be really nice for a number of reasons. Hopefully something for Q2.
Whiteboard: gfx-noted
I can also provide large numbers of WebVR test cases.
Whiteboard: gfx-noted → [gfx-noted][webvr]
Whiteboard: [gfx-noted][webvr] → [gfx-noted][webvr][games:p3]
Whiteboard: [gfx-noted][webvr][games:p3] → [gfx-noted][webvr][games:p3][platform-rel-Games]
platform-rel: --- → ?
I am removing the [webvr] tag as a VR specific rendering path that bypasses the compositor has been implemented as part of the WebVR 1.0 support in Bug 1250244. Perhaps the VR specific implementation may be a good reference for someone implementing the general purpose WebGL case.
Whiteboard: [gfx-noted][webvr][games:p3][platform-rel-Games] → [gfx-noted][games:p3][platform-rel-Games]
platform-rel: ? → ---
Assignee: nobody → rbarker
Assignee: rbarker → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.