Implement IPC plumbing to create worker accessible WebGL instances
Categories
(Core :: Graphics, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox96 | --- | fixed |
People
(Reporter: aosmond, Assigned: aosmond)
References
Details
Attachments
(4 files)
In this bug, we will add the IPC plumbing necessary to create WebGL instances off the main thread in the content process, while the backend runs on a dedicated background thread in the compositor process.
Assignee | ||
Comment 1•3 years ago
|
||
This patch adds the necessary IPDL plumbing to allow us to create WebGL
instances off the main thread in the content process, and on a dedicated
background thread in the compositor process. This will be used by future
patches for offscreen canvas support.
Updated•3 years ago
|
Assignee | ||
Comment 2•3 years ago
|
||
This patch causes us to move WebGL execution in the compositor process
from the Compositor thread to the Renderer thread. This has the
advantage of keeping all of our GL calls on the same thread, which makes
us work more like a typical application. This makes the drivers happy,
especially on Linux, and may allow us to move forward with OOP WebGL on
Linux.
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 3•3 years ago
|
||
IsAccelAngleSupported would always indicate ANGLE support on Windows but
we have a specific variant of GLLibraryEGL::CreateDisplay for use with
ANGLE which bypasses this check for the WebRender compositor. It is
otherwise only used for WebGL and non-Windows, so we can skip the
assertions here.
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 4•3 years ago
|
||
Now that WebGL runs on the Renderer thread in the compositor process
when OOP, we can now lift the threadsafe condition on Linux preventing
WebGL OOP. Regardless of webgl.out-of-process's setting, we should
always prefer by default to run worker WebGL contexts OOP to avoid
similar threadsafe conflicts in the content process.
Pushed by aosmond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1bd87627df8b Part 1. Remove checks for WebRender based on RenderThread. r=jgilbert https://hg.mozilla.org/integration/autoland/rev/413ecffe1156 Part 2. Create PCanvasManager to manage WebGL instances. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/a3e4a30c587a Part 3. Switch to always allocating PWebGL instances via CanvasManager. r=jgilbert https://hg.mozilla.org/integration/autoland/rev/9cae29707d33 Part 4. Lift some conditions preventing WebGL OOP. r=jgilbert
Comment 6•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1bd87627df8b
https://hg.mozilla.org/mozilla-central/rev/413ecffe1156
https://hg.mozilla.org/mozilla-central/rev/a3e4a30c587a
https://hg.mozilla.org/mozilla-central/rev/9cae29707d33
Description
•