Closed Bug 1700434 (sw-wr-perf-text) Opened 3 years ago Closed 3 years ago

Animations on goliath-entertainment.com are shaking with WebRender software enabled

Categories

(Core :: Graphics: WebRender, defect)

Desktop
Unspecified
defect

Tracking

()

RESOLVED FIXED
90 Branch
Tracking Status
firefox-esr78 --- disabled
firefox87 --- disabled
firefox88 --- wontfix
firefox89 --- wontfix
firefox90 --- fixed

People

(Reporter: rdoghi, Assigned: lsalzman, NeedInfo)

References

(Blocks 3 open bugs)

Details

Attachments

(5 files)

Attached image whatWeDo.png

[Affected platforms]:
Platforms: Windows 8 / 8.1

[Preconditions]:
Reach about:config and set both gfx.webrender.enabled, gfx.webrender.software - true

[Steps to reproduce]:

  1. Launch the Firefox browser.
  2. Reach https://www.goliath-entertainment.com/ and scroll down to the What do we do? section

Expected Result:
The Animation for the flying elements should be smooth and without visual issues.

Actual Results:
Some animations from the website are shaking.

Has Regression Range: --- → no
Has STR: --- → yes
Blocks: sw-wr-perf
No longer blocks: sw-wr-correctness

This bug is also reproducible on Windows 7 x64, AMD - RX 550 and Ubuntu 18x64, Intel(R) HD Graphics 630.

Additional notes: The scroll on this site is not smooth with Webrender Software. With WebRender off and default WebRender the scroll is smooth.

This case is both dependent on cs_clip_image performance and ps_text_run in equal measure. But since it's a good example of a lot of big animated text all over the place, I'll let this serve as a slow-text metabug, while we already have one for cs_clip_image.

Alias: sw-wr-perf-text
Blocks: 1704342
Blocks: 1705986

This adds a swgl_blendSubpixelText() extension that enables us to move some
of the complexity of plumbing dual-source blending out of the shader for
subpixel text. This will enable further speed-ups later by allowing us to use
swgl_commitTexture.

Assignee: nobody → lsalzman
Status: NEW → ASSIGNED

This implements gl_ClipDistance so that the text shader doesn't have
to manually evaluate whether or not we're inside the untransformed
source texture. This simplification is necessary so that we can work
towards using swgl_commitTexture in the text shader.

Depends on D115456

This adds some swgl_commitTextureLinearR8ToRGBA8 variations so that we can deal
with alpha glyph formats. Following that, a simple span shader is added that
dispatches to this as appropriate.

Depends on D115511

Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5ff6e9101b77
Implement faster subpixel text blend mode for SWGL. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/9d932ee247a2
Implement gl_ClipDistance support in SWGL. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/eb02c32b173e
Store mono bitmaps and alpha glyphs with same texture format. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/78cc8dd9ed2a
Add SWGL fast-path for ps_text_run. r=jrmuizel
Backout by malexandru@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e0412536f65c
Backed out 4 changesets for causing bustages in src/glsl.h
Flags: needinfo?(lsalzman)
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a998658f3364
Implement faster subpixel text blend mode for SWGL. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/6643c36ec306
Implement gl_ClipDistance support in SWGL. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/64f8b849e94e
Store mono bitmaps and alpha glyphs with same texture format. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/215ea9dc277b
Add SWGL fast-path for ps_text_run. r=jrmuizel
Flags: needinfo?(lsalzman)

Backed out for causing bustages in src/glsl.h.

Push with failures

Failure log

Backout link

Flags: needinfo?(lsalzman)
Flags: needinfo?(lsalzman)
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/68ac30edfcb6
Implement faster subpixel text blend mode for SWGL. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/0b6d62c5e8ff
Implement gl_ClipDistance support in SWGL. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/0a38ce1f4c59
Store mono bitmaps and alpha glyphs with same texture format. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/e53af9e245db
Add SWGL fast-path for ps_text_run. r=jrmuizel

Hi Jeff and Lee, the issue still occurs in our latest Nightly build 90.0a1 (2021-05-23), The art direction sign is shaking a lot less than before but it still happens for a bit, as for the text on the right side, that is just as bad as before, the letters are shaking individually, as for the browser on the right you can see the art direction sign is not shaking at all and neither are the letters in the top right corner.

The video file is a little larger than I'm allowed to upload here because I had to record with my phone but I hope the link from the gmail drive works.
Left browser: software enabled Right browser: Webrender disabled
https://drive.google.com/file/d/1oF19SiR3VhzZ1hHZTWk3st9mxE_H8qWh/view?usp=sharing

Flags: needinfo?(lsalzman)
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(lsalzman)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: