Closed Bug 1592150 Opened 1 year ago Closed 1 year ago

Make partial updates with WebRender OS compositor work on macOS

Categories

(Core :: Graphics: WebRender, enhancement)

All
macOS
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox72 --- fixed

People

(Reporter: mstange, Assigned: mstange)

References

Details

Attachments

(4 files, 6 obsolete files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
No description provided.

Depends on D50726

Attached file Bug 1592150 - wip (obsolete) —

Depends on D50878

Comment on attachment 9104789 [details]
Bug 1592150 - Use NextSurfaceAsDrawTarget in nsChildView.

Revision D50876 was moved to bug 1593325. Setting attachment 9104789 [details] to obsolete.

Attachment #9104789 - Attachment is obsolete: true

These settings are now supplied during layer creation and never change.
This aligns the NativeLayer API with DirectComposition's capabilities. It also
simplifies swap chain management.

Attachment #9104791 - Attachment description: Bug 1592150 - Change NextSurface APIs to accept a dirty region. → Bug 1592150 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain.

Depends on D50878

This gives us easy access to a surface that has valid content. In the next patch,
we will use this surface to copy valid content from.

Depends on D51758

Attachment #9104792 - Attachment is obsolete: true
Attachment #9106422 - Attachment description: Bug 1592150 - Remove support for mutating IsOpaque and Size on NativeLayer. → Bug 1592150 - Bake the layer size and its opaqueness into the layer, don't allow mutating it. r=jrmuizel
Attachment #9104790 - Attachment description: Bug 1592150 - Only call InvalidateRegionThroughoutSwapchain just before calling NextSurface. → Bug 1592150 - Track the nsChildView invalid region inside nsChildView, rather than on the layer. r=jrmuizel
Attachment #9104791 - Attachment description: Bug 1592150 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. → Bug 1592150 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel
Attachment #9106423 - Attachment description: Bug 1592150 - Remove unused SurfaceRegistry API. → Bug 1592150 - Remove unused SurfaceRegistry API. r=jrmuizel
Attachment #9106424 - Attachment description: Bug 1592150 - Add another step into the NativeLayerCA swap chain called mFrontSurface. → Bug 1592150 - Add another step into the NativeLayerCA swap chain called mFrontSurface. r=jrmuizel
Attachment #9106425 - Attachment description: Bug 1592150 - Make NativeLayer::NextSurfaceAs* copy existing drawing from previous buffers so that only the update region needs to be drawn. → Bug 1592150 - Make NativeLayer::NextSurfaceAs* copy existing drawing from previous buffers so that only the update region needs to be drawn. r=jrmuizel
Attachment #9106426 - Attachment description: Bug 1592150 - Remove CurrentSurfaceInvalidRegion(). Callers now always just repaint the update region that they supplied. → Bug 1592150 - Remove CurrentSurfaceInvalidRegion(). Callers now always just repaint the update region that they supplied. r=jrmuizel
Attachment #9106427 - Attachment description: Bug 1592150 - wip: Partial update support for WebRender OS compositor. → Bug 1592150 - Enable support for partial updates in the WebRender OS compositor on macOS. r=jrmuizel
Depends on: 1594950

Comment on attachment 9106422 [details]
Bug 1592150 - Bake the layer size and its opaqueness into the layer, don't allow mutating it. r=jrmuizel

Revision D51757 was moved to bug 1594950. Setting attachment 9106422 [details] to obsolete.

Attachment #9106422 - Attachment is obsolete: true

Comment on attachment 9104790 [details]
Bug 1592150 - Track the nsChildView invalid region inside nsChildView, rather than on the layer. r=jrmuizel

Revision D50877 was moved to bug 1594950. Setting attachment 9104790 [details] to obsolete.

Attachment #9104790 - Attachment is obsolete: true

Comment on attachment 9104791 [details]
Bug 1592150 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel

Revision D50878 was moved to bug 1594950. Setting attachment 9104791 [details] to obsolete.

Attachment #9104791 - Attachment is obsolete: true

Comment on attachment 9106423 [details]
Bug 1592150 - Remove unused SurfaceRegistry API. r=jrmuizel

Revision D51758 was moved to bug 1594950. Setting attachment 9106423 [details] to obsolete.

Attachment #9106423 - Attachment is obsolete: true
Attachment #9106424 - Attachment description: Bug 1592150 - Add another step into the NativeLayerCA swap chain called mFrontSurface. r=jrmuizel → Bug 1592150 - Move a step in the NativeLayerCA swap chain from mSurfaces to a new field called mFrontSurface. r=jrmuizel
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/292ede718577
Move a step in the NativeLayerCA swap chain from mSurfaces to a new field called mFrontSurface. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/ffcddfbaf321
Make NativeLayer::NextSurfaceAs* copy existing drawing from previous buffers so that only the update region needs to be drawn. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/1af8d457ec99
Remove CurrentSurfaceInvalidRegion(). Callers now always just repaint the update region that they supplied. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/8ae9d7dc86f2
Enable support for partial updates in the WebRender OS compositor on macOS. r=jrmuizel
Regressions: 1629220
No longer regressions: 1629220
You need to log in before you can comment on or make changes to this bug.