Closed Bug 1814344 Opened 1 year ago Closed 9 months ago

Re-evaluate on which platforms to use scissor clear optimisation

Categories

(Core :: Graphics: WebRender, task)

task

Tracking

()

RESOLVED FIXED

People

(Reporter: jnicol, Assigned: jnicol)

References

Details

Attachments

(1 file)

For a long time we have had an optimisation where we apply a scissor rect when clearing render targets, rather than clearing the entire target. The comment states that at the time this was measured to be a win on some Intel and nvidia GPUs.

In bug 1809738, however, we realised this optimisation actively hurts performance on Mali, so disabled it there. This may be the case on other GPUs too, so we should do a bunch of measuring to determine which devices to enable it on. Glenn even suspects i may no longer be as big a win on the platforms he originally tested on.

I've done some testing on a variety of Android devices. Here are the average frame times when scrolling on twitter:

Phone GPU scissored clear non-scissored clear
Pixel 7 Mali G710 22ms 8ms
Pixel 6a Mali G78 9ms 9ms
Samsung S20 Ultra Mali G77 15ms 14ms
Samsung S10 Mali G76 10ms 10ms
Samsung S9 Mali G72 10ms 10ms
Samsung S6 Mali T760 50ms 25ms
Samsung S22 Xclipse 920 8ms 8ms
OnePlus 8 Adreno 650 6ms 6ms
Pixel 3 Adreno 630 6ms 7ms
Pixel 2 Adreno 540 10ms 10ms
Moto G6 Adreno 506 50ms 33ms
Nexus 5 Adreno 330 90ms 90ms
Pixel 6a Software Webrender 38ms 50ms

Disabling the scissor appears to make no difference on most devices, but is a clear win on Mali-G710, Adreno 506, and a clear loss on software webrender.

I'm going to land a patch to disable the scissor on all Android devices except SWGL. I'll leave this bug open for further investigations on Desktop GPUs.

Keywords: leave-open

In bug 1809738 we found that our scissored render target clear
optimization actively hurt performance on some Mali GPUs. From testing
on a variety of Android devices, we have found that it mostly makes no
difference either way, but hurts performance on some other GPUs
too. On software webrender, however, it is still a performance win.

This patch therefore disables the optimization on all Android, apart
from when using software webrender.

Assignee: nobody → jnicol
Status: NEW → ASSIGNED
Pushed by jnicol@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/4b9269d9e6be
Disable scissored clear optimization on all Android except SWGL. r=gfx-reviewers,jrmuizel

The leave-open keyword is there and there is no activity for 6 months.
:jnicol, maybe it's time to close this bug?
For more information, please visit BugBot documentation.

Flags: needinfo?(jnicol)

We can always file a new bug if we decide to change anything on other platforms

Status: ASSIGNED → RESOLVED
Closed: 9 months ago
Flags: needinfo?(jnicol)
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: