Closed Bug 1541472 Opened 6 years ago Closed 4 years ago

Remove advanced layers

Categories

(Core :: Graphics: Layers, task, P3)

task

Tracking

()

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: rhunt, Assigned: mattwoodrow)

References

Details

Attachments

(1 file)

We're shipping webrender in 66 for some users on windows, which will mean we have three different accelerated backends. D3D11 compositor, advanced layers, and webrender.

We should try to remove advanced layers, as it's a lot of code and only in use on windows.

Bas, how hard is it to port the compositor recording system from bug 1536174 to work with CompositorD3D11? And is it actively being used by you or in automated tests?

I've got a talos run queued up so we'll see if there's any obvious regressions from removing advanced layers. I'm also considering just pref'ing off advanced layers in nightly to find any fallout before actually removing code.

Flags: needinfo?(bas)
Depends on: 1544538

(In reply to Ryan Hunt [:rhunt] from comment #3)

Bas, how hard is it to port the compositor recording system from bug 1536174 to work with CompositorD3D11? And is it actively being used by you or in automated tests?

I've got a talos run queued up so we'll see if there's any obvious regressions from removing advanced layers. I'm also considering just pref'ing off advanced layers in nightly to find any fallout before actually removing code.

It is actively used, and will be more actively used in the near future. I think we should consider removing CompositorD3D11 and moving those users to Basic as well, although I'm not certain what the better decision is.

Flags: needinfo?(bas)

Why do you think it's better to keep advanced layers?

Flags: needinfo?(bas)

(In reply to Jeff Muizelaar [:jrmuizel] from comment #5)

Why do you think it's better to keep advanced layers?

I believe it to be somewhat better for performance in general. It should be less susceptible to overdraw. Having said that it's purely an intuition based on the way David implemented it rather than having a particularly large body of evidence.

It would have the advantage of not 'changing' the compositor used by most users at this point in time, which is something that appeals to me. Especially until we get to the point where we have good performance metrics on browser performance in general.

Flags: needinfo?(bas)

In latest Mozilla Firefox Nightly in about:config I'm seeing that it changed from

Graphics
Features
Compositing Direct3D 11 (Advanced Layers)

to

Graphics
Features
Compositing Direct3D 11

What's more, my hardware isn't qualified to use WebRenderer per

Decision Log
WEBRENDER
opt-in by default: WebRender is an opt-in feature
WEBRENDER_QUALIFIED
blocked by env: No qualified hardware

and now because of change in bug #1544538 performance of Mozilla Firefox decreases.

As Advanced Layers has many benefits:

  • it submits smaller GPU workloads and buffer uploads than the existing compositor.
  • it needs only a single pass over the layer tree.
  • it uses occlusion information more intelligently.
  • it is easier to add new specialized rendering paths and new layer types.
  • it separates compositing logic from device logic, unlike the existing compositor.
  • it is much faster at rendering 3d scenes or complex layer trees.
  • it has experimental code to use the z-buffer for occlusion culling.

It's significant improvement over the existing compositor.

Any logical reason why Advanced Layers was disabled and want to delete it?

(In reply to Ryan Hunt [:rhunt] from comment #0)

[...] We should try to remove advanced layers,
as it's a lot of code and only in use on windows.

Nearly 90% of Mozilla Firefox users are using Microsoft Windows operating system.

Flags: needinfo?(rhunt)

(In reply to Virtual_ManPL [:Virtual] - (please needinfo? me - so I will see your comment/reply/question/etc.) from comment #7)

In latest Mozilla Firefox Nightly in about:config I'm seeing that it changed
from

Graphics
Features
Compositing Direct3D 11 (Advanced Layers)

to

Graphics
Features
Compositing Direct3D 11

What's more, my hardware isn't qualified to use WebRenderer per

Decision Log
WEBRENDER
opt-in by default: WebRender is an opt-in feature
WEBRENDER_QUALIFIED
blocked by env: No qualified hardware

and now because of change in bug #1544538 performance of Mozilla Firefox
decreases.

As Advanced Layers has many benefits:

  • it submits smaller GPU workloads and buffer uploads than the existing
    compositor.
  • it needs only a single pass over the layer tree.
  • it uses occlusion information more intelligently.
  • it is easier to add new specialized rendering paths and new layer types.
  • it separates compositing logic from device logic, unlike the existing
    compositor.
  • it is much faster at rendering 3d scenes or complex layer trees.
  • it has experimental code to use the z-buffer for occlusion culling.

It's significant improvement over the existing compositor.

Any logical reason why Advanced Layers was disabled and want to delete it?

(In reply to Ryan Hunt [:rhunt] from comment #0)

[...] We should try to remove advanced layers,
as it's a lot of code and only in use on windows.

Nearly 90% of Mozilla Firefox users are using Microsoft Windows operating
system.

You don't need to needinfo me twice to get a response. I've posted my answer in bug 1544538.

Flags: needinfo?(rhunt)
Depends on: 1547805

As we don't have anyone with time to properly investigate this further, we're going to delay removing advanced layers for now. See bug 1547805 for the pref flip back on.

Depends on: 1545313
See Also: → 1442979
Depends on: 1679577
Assignee: rhunt → matt.woodrow
Pushed by mwoodrow@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b8b93e74f4bf Remove Advanced Layers, since it's disabled everywhere now. r=jrmuizel
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
Regressions: 1716482
No longer regressions: 1716482
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: