Closed Bug 1725907 Opened 3 years ago Closed 3 years ago

Categories

(Core :: Graphics: WebRender, defect, P2)

defect

Tracking

()

RESOLVED FIXED
Tracking Status
firefox-esr78 --- unaffected
firefox-esr91 --- fixed
firefox91 --- fixed
firefox92 --- fixed
firefox93 + wontfix
firefox94 --- wontfix
firefox99 --- fixed

People

(Reporter: mayankleoboy1, Unassigned)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

yes
2021-08-16T10:21:34.689000: INFO : platform_buildid: 20210705005108
2021-08-16T10:21:34.689000: INFO : platform_changeset: 96c170b293235ad5eced0c3a5ad555c3c22dd4e5
2021-08-16T10:21:34.689000: INFO : platform_repository: https://hg.mozilla.org/integration/autoland
2021-08-16T10:21:34.689000: INFO : platform_version: 91.0a1
2021-08-16T10:21:56.410000: INFO : Narrowed integration regression window from [2db6a494, a1cbf18d] (4 builds) to [96c170b2, a1cbf18d] (2 builds) (~1 steps left)
2021-08-16T10:21:56.432000: DEBUG : Starting merge handling...
2021-08-16T10:21:56.432000: DEBUG : Using url: https://hg.mozilla.org/integration/autoland/json-pushes?changeset=a1cbf18d246a19e25f57748bac1a8f8c35becf45&full=1
2021-08-16T10:21:56.432000: DEBUG : redo: attempt 1/3
2021-08-16T10:21:56.433000: DEBUG : redo: retry: calling _default_get with args: ('https://hg.mozilla.org/integration/autoland/json-pushes?changeset=a1cbf18d246a19e25f57748bac1a8f8c35becf45&full=1',), kwargs: {}, attempt #1
2021-08-16T10:21:56.442000: DEBUG : urllib3.connectionpool: Resetting dropped connection: hg.mozilla.org
2021-08-16T10:21:59.256000: DEBUG : urllib3.connectionpool: https://hg.mozilla.org:443 "GET /integration/autoland/json-pushes?changeset=a1cbf18d246a19e25f57748bac1a8f8c35becf45&full=1 HTTP/1.1" 200 None
2021-08-16T10:21:59.319000: DEBUG : Found commit message:
Bug 1717161 - Clamp perspective() values to a minimum of 1px. r=emilio

Differential Revision: https://phabricator.services.mozilla.com/D118250

2021-08-16T10:21:59.319000: DEBUG : Did not find a branch, checking all integration branches
2021-08-16T10:21:59.319000: INFO : The bisection is done.
2021-08-16T10:21:59.319000: INFO : Stopped

Regressed by: 1717161
Has Regression Range: --- → yes

Set release status flags based on info from the regressing bug 1717161

Bug 1717161 was backed out from Fx92.

Severity: -- → S3
Priority: -- → P3

Changing the priority to p2 as the bug is tracked by a release manager for the current nightly.
See What Do You Triage for more information

Priority: P3 → P2

Hi Matt,
This bug still repros even after bug 1723266 and bug 1717161 have been fixed. Is this bug actionable?

Flags: needinfo?(matt.woodrow)

Looks like this causes crazy amounts of GPU load, and doesn't crash for me (but makes my OS basically unusable).

Glenn, do you have any idea what causes this?

Flags: needinfo?(matt.woodrow) → needinfo?(gwatson)

This test case seems to run OK on my (high-end) machine. It's a bit slower than I'd want, but not catastrophic (it easily holds 60 fps at 4k, GPU times ~5 ms, CPU times a bit higher than that). It's probably very bad on an integrated GPU though, I suspect!

Can we get some details on the hardware that is seeing issues with this test (GPU etc), and maybe some screenshots of the WR profiler overlay with gfx.webrender.debug.gpu-time-queries and gfx.webrender.debug.profiler enabled? (no restart required to enable those).

I wonder if we're creating very large render targets for the off-screen surfaces that are preserve-3d, or similar to that.

Flags: needinfo?(gwatson)
Attached image image_50387713.JPG
Flags: needinfo?(gwatson)

https://share.firefox.dev/3i9rClf

That's from a macbook pro with an AMD Radeon Pro 460.

I made a mistake in my testing.

On current release Gecko, this test case works fine. However, on nightly it immediately crashes for me too.

The regressing patch only has the effect of clamping the perspective(0) to be perspective(1) - if I change the test case to have perspective(1) in the codepen editor, it also OOMs on release.

kvark, something you may be able to take a look at?

Flags: needinfo?(gwatson) → needinfo?(dmalyshau)
See Also: → 1732608

I looked at this today. There is a whole bunch of alpha render targets, which are very big, but only created for box shadows.
The interesting bit is that BoxShadowData::dest_rect is very small (around 128 x 128), and the box shadow is only affecting this sub-rectangle. So all that render target space (which triggers OOM) is wasted.

The reason why render targets are so big is because of the "Inset` mode. We have to fill everything outside of the box shadow rect as 1.

Removing "Inset" property makes the targets much smaller (think but long), but still takes a while. What we could do is having a better support of the "Inset" masks. When applying a mask, it's fairly trivial to work with either Inset or Outset. The biggest issue is combining Inset masks with Outset, because we'll need some sort of a fallback task for converting Inset into Outset.

Removing box shadows entirely makes it run significantly faster. The number of textures drops by the factor of 2, and their sizes are smaller.
Still, we generate a lot of masks that are just rectangles. Pretty sure that we could avoid some of these tasks completely.

Flags: needinfo?(dmalyshau)

Use of large memory is Fixed by bug 1749380. The rendering now looks like Chrome.
The higher GPU use is still present.

Status: NEW → RESOLVED
Closed: 3 years ago
Depends on: 1749380
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: