Implement GPU process on macOS
Categories
(Core :: Graphics, enhancement, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox143 | --- | fixed |
People
(Reporter: bradwerth, Assigned: bradwerth)
References
(Blocks 3 open bugs, Regressed 2 open bugs)
Details
Attachments
(8 files, 6 obsolete files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
This bug covers an initial implementation of the GPU process on macOS.
Updated•1 year ago
|
| Assignee | ||
Comment 1•1 year ago
|
||
| Assignee | ||
Comment 2•1 year ago
|
||
Current WIP patches spin up a GPU Process (with pref layers.gpu-process.enabled set to true), which doesn't render any surfaces. Work continues.
| Assignee | ||
Comment 3•1 year ago
|
||
| Assignee | ||
Comment 4•1 year ago
|
||
| Assignee | ||
Comment 5•1 year ago
|
||
This attempts to do the following things:
- Make nsCocoaWindow override and store a platform compositor widget
delegate, overriding nsBaseWidget to do so. The delegate is
the CompositorBridgeChild. - Actually set the delegate -- this part is still missing I think.
- Make nsCocoaWindow::DoResize update the size of the widget delegate,
which should allow the child to offer up its CocoaCompositorWidget and
receive rendering calls on the GPU.
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 6•1 year ago
|
||
| Assignee | ||
Comment 7•1 year ago
|
||
| Assignee | ||
Comment 8•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 9•1 year ago
|
||
Updated•1 year ago
|
Comment 10•1 year ago
|
||
Comment on attachment 9486323 [details]
WIP: Bug 1889757 Part 4: Create the NativeLayerRemoteMac peers.
Revision D248437 was moved to bug 1885451. Setting attachment 9486323 [details] to obsolete.
Updated•1 year ago
|
| Assignee | ||
Comment 11•1 year ago
|
||
This handles the NativeLayerRoot methods to turn them into messages sent
to the NativeLayerRemoteMacParent. The layers are identified by their
GPU-side (client) pointers, which are turned into flavorless u64 values.
When layers are created, they we send creation messages noting the size
and other params of the layer creation. Later, when we CommitToScreen,
we pull properties from each of the layers, not knowing which of those
properties might have changed. Together, it should be enough for the
parent to reconstruct its layers and whatever new properties they should
have.
This patch probably has unneeded parts that should be moved into other
parts of this patch stack.
Comment 12•1 year ago
|
||
Comment on attachment 9486323 [details]
WIP: Bug 1889757 Part 4: Create the NativeLayerRemoteMac peers.
Revision D248437 was moved to bug 1885451. Setting attachment 9486323 [details] to obsolete.
| Assignee | ||
Comment 13•1 year ago
|
||
| Assignee | ||
Comment 14•1 year ago
|
||
| Assignee | ||
Comment 15•1 year ago
|
||
This also incidentally removes the unused NativeLayerCA::NextSurface
method. That method was made redundant in the refactoring of Bug
1962217.
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 16•11 months ago
|
||
This supports a later part in this patch where a NativeLayerRoot
subclass is added, which needs to define its own AddRef and Release
implementations.
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
| Assignee | ||
Comment 17•11 months ago
|
||
This change allows NativeLayerRemoteMac::AttachExternalImage to use the
surface injection system in NativeLayerCA::SetSurfaceToUse to handle
video surfaces.
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
Updated•11 months ago
|
| Assignee | ||
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Updated•10 months ago
|
Comment 18•10 months ago
|
||
Comment 19•10 months ago
|
||
Comment 20•10 months ago
|
||
Backed out for causing build bustages at NativeLayerCommandQueue.h..
Backout link: https://hg-edge.mozilla.org/integration/autoland/rev/27e1121f32eafc0ab3c5eb9882aa69d50ca63827
Push with failures: https://treeherder.mozilla.org/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel&revision=3f09cedb0a5b3549c57a938c8fb1793c01557703
Failure log: https://treeherder.mozilla.org/logviewer?job_id=519945963&repo=autoland&lineNumber=101253
Comment 21•10 months ago
|
||
| Assignee | ||
Comment 22•10 months ago
|
||
Ugh, looks like I failed to push the rest of the patch stack. I'll clean up as best I can after I see what happens with this landing.
Comment 23•10 months ago
|
||
Comment 24•10 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/4d571e1e4b6e
https://hg.mozilla.org/mozilla-central/rev/4d4289d80060
https://hg.mozilla.org/mozilla-central/rev/ce38d08e7549
https://hg.mozilla.org/mozilla-central/rev/7dfefdaa4dfc
https://hg.mozilla.org/mozilla-central/rev/a43156231b6d
https://hg.mozilla.org/mozilla-central/rev/239d4ebbb302
https://hg.mozilla.org/mozilla-central/rev/36a9f3531b90
https://hg.mozilla.org/mozilla-central/rev/22daba702372
| Assignee | ||
Updated•10 months ago
|
Updated•9 months ago
|
Comment 25•9 months ago
•
|
||
Bug 1838649 and bug 1783212 should have been fixed by this bug's patch, but it doesn't seem that they were. See bug 1838649 comment #16.
Updated•9 months ago
|
| Assignee | ||
Comment 26•9 months ago
|
||
(In reply to Steven Michaud [:smichaud] (Retired) from comment #25)
Bug 1838649 and bug 1783212 should have been fixed by this bug's patch, but it doesn't seem that they were. See bug 1838649 comment #16.
GPU process is not on by default, and will not be until Bug 1985082 lands. That Bug will turn it on for Nightly, and then another Bug (not yet filed) will turn it on for all channels.
Comment 27•9 months ago
|
||
(In reply to Brad Werth [:bradwerth] from comment #26)
(In reply to Steven Michaud [:smichaud] (Retired) from comment #25)
Bug 1838649 and bug 1783212 should have been fixed by this bug's patch, but it doesn't seem that they were. See bug 1838649 comment #16.
GPU process is not on by default, and will not be until Bug 1985082 lands. That Bug will turn it on for Nightly, and then another Bug (not yet filed) will turn it on for all channels.
Thanks for the info.
| Assignee | ||
Comment 28•7 months ago
|
||
Going to use the alias gpu-process-macos on a new meta Bug.
| Assignee | ||
Updated•7 months ago
|
| Assignee | ||
Comment 29•7 months ago
|
||
Blocked Bugs which are graphics crashes are moved over to macos-graphics-crash
Description
•