Closed Bug 1919114 (gpu-process-testing) Opened 2 years ago Closed 2 years ago

Add testing variant for disabling GPU process

Categories

(Core :: Graphics, task, P3)

task

Tracking

()

RESOLVED FIXED
133 Branch
Tracking Status
firefox133 --- fixed

People

(Reporter: bradwerth, Assigned: bradwerth)

References

(Blocks 3 open bugs)

Details

Attachments

(3 files, 1 obsolete file)

An isolated GPU process is currently on-by-default for Windows and Android, and available but off-by-default for Linux X11. As we expand this capability to more platforms, and change the feature to on-by-default on more platforms, it will be useful to have a test variant that can compare test behavior with or without the isolated GPU process. Since the goal is to have GPU process on-by-default for all platforms, the variant should probably be a "no-gpu-process" variant that will eventually be removed once the feature is mature.

This allows us to test platforms that support GPU process without
enabling the GPU process. It may help us flush out differing test
outcomes between the two cases. Eventually this will be retired when all
platforms have mature GPU process implementations.

Summary: Add testing variant for isolated GPU process → Add testing variant for disabling GPU process
Attachment #9425109 - Attachment description: WIP: Bug 1919114: Add a no-gpu-process test variant for reftests and media mochitests. → Bug 1919114: Add a no-gpu-process test variant for reftests and media mochitests.
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c61e536db0ba Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond
Regressions: 1919645
Blocks: 1917652
See Also: → 1919872
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/799295025870 Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond

At some point, UtilityAudioDecoderChild lost the ability to work
without a GPU process. This patch remedies that by creating an
alternate connection for the endpoint, modeled after the code in
RDDProcessManager.

Attachment #9425109 - Attachment description: Bug 1919114: Add a no-gpu-process test variant for reftests and media mochitests. → Bug 1919114 Part 2: Add a no-gpu-process test variant for reftests and media mochitests.
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4054f51f1754 Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/87a86132adad Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond

Backed out for causing multiple R-nogpu failures

Backout link

Push with failures

The failures can be seen in the above link. The tier 2 ones seem to be failing the same on each push.

Allowing (once again) a no-gpu-process option increases the number of
pixels which get antialiased differently than the reference image. The
images continue to largely match; it's just an increase in the number of
close-but-not-quite pixels.

Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/bd75acb8f7ff Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/e4cf55f1c4da Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/a69fadab030b Part 3: Update fuzziness of Android tests with no gpu process. r=gfx-reviewers,aosmond

Backed out for causing multiple reftest failures on multiple platforms with no-gpu enabled flavors.

To check all the failures caused by this, please visit this link -> it has a filter that shows all the failures marked as fix by commit with this backout.

Flags: needinfo?(bwerth)
Flags: needinfo?(bwerth)
Attachment #9426901 - Attachment description: Bug 1919114 Part 3: Update fuzziness of Android tests with no gpu process. → Bug 1919114 Part 3: Update fuzziness of reftests with no gpu process.
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3b459fd776e6 Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/9db329e6c216 Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/0852cb6ea78f Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ea1c122a3848 Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/226668ab3f35 Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/bd7b34ae33ef Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond,taskgraph-reviewers,jmaher
Regressions: 1921377
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 132 Branch

Hopefully this one will stick, thank you all for your patience on this.

Flags: needinfo?(bwerth)

Backed out for causing multiple nogpu reftest failures.

You can check the failures in this link

Status: RESOLVED → REOPENED
Flags: needinfo?(bwerth)
Resolution: FIXED → ---
Target Milestone: 132 Branch → ---
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/cec6c1dcdfae Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/f8e4f207430b Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/e7b92733fa76 Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond,taskgraph-reviewers,jmaher

Backed out for causing no-gpu related reftests failures.

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: REFTEST TEST-UNEXPECTED-PASS | layout/reftests/bugs/1412375.html == layout/reftests/bugs/1412375-ref.html | image comparison, max difference: 0, number of differing pixels: 0
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/eeba73c31be2 Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/1a78a03693b0 Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/d64a523fd44c Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond,taskgraph-reviewers,jmaher

Backed out for causing multiple no-gpu reftest failures.

Same issues as the backouts that I've made before.

Flags: needinfo?(bwerth)
Flags: needinfo?(bwerth)
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9c9e6df18d35 Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/9fbb4bf4480d Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/9e75159e3f24 Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond,taskgraph-reviewers,jmaher

Backed out for causing nogpu related reftests failures.

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: REFTEST TEST-UNEXPECTED-FAIL | layout/reftests/bugs/1840511-2.html == layout/reftests/bugs/1840511-1-ref.html | image comparison, max difference: 1, number of differing pixels: 309

Apologies to the sheriffs and to anybody else watching this Bug or waiting for it to land. The failures are already filed as intermittents, but it's not acceptable to turn them into perma-fails by landing this Bug. I should have understood that sooner; I'm sorry! There's a couple of things I'll have to do differently to make this landable. Here's what I've realized about the test failures that keep bouncing this Bug:

  1. Some tests already in the tree behave very differently with and without a gpu process. Since some platforms have one and some don't, this is expressed as very complex fuzzy-if declarations. A declaration like this is trying to tease out whether or not a gpu process is in use. The changes in this Bug are altering those conditions, which is leading to failures in tests.
  2. The intermittent Bugs already filed on some of the affected tests are needed because sometimes these tests downgrade to abandon the gpu process after enough crashes in the process. So if a test is run after the gpu process is abandoned, it'll have a very different outcome. Bug 1895731 is an example. Without a gpu process, it draws nothing at all. This sometimes happen even on platforms with a gpu process, thus the intermittent.

So what to do about this? The ideal would be to update the sandbox with a variable indicating whether or not there is a gpu process in use. Unfortunately, the presence of the gpu process is not exposed to JS and I'm not sure how to do that. An alternative would be to add a variable that indicates whether a gpu process is possible (based on prefs and our current platform support) which will be mostly the same. Such a variable would be useful in simplifying the fuzzy-if logic for Case 1, above. It won't help with the Case 2 intermittents.

So that's what I'm going to do. I'll add nogpu as a variable to the sandbox and fuzz or disable tests that behave very differently with that variable set to true. It will be temporarily annoying to have a variable expressing the absence of something, but as every platform is expected to support a gpu process in time, then this variable and all the annotations around it will eventually be removed.

Blocks: 1922686
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5c1e3623cdbd Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/0177073b7b42 Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/994aece36504 Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond,taskgraph-reviewers,jmaher

Backed out for causing reftest failures on background-blending-color.html

[task 2024-10-08T17:54:45.091Z] 17:54:45     INFO -  REFTEST TEST-START | layout/reftests/css-blending/background-blending-color.html == layout/reftests/css-blending/background-blending-color-ref.svg
[task 2024-10-08T17:54:45.091Z] 17:54:45     INFO -  REFTEST TEST-LOAD | http://10.0.2.2:8854/tests/layout/reftests/css-blending/background-blending-color.html | 61 / 1022 (5%)
[task 2024-10-08T17:54:45.091Z] 17:54:45     INFO -  REFTEST TEST-LOAD | http://10.0.2.2:8854/tests/layout/reftests/css-blending/background-blending-color-ref.svg | 61 / 1022 (5%)
[task 2024-10-08T17:54:45.091Z] 17:54:45     INFO -  REFTEST INFO | REFTEST wr-on-android dropping fuzz of (1, 9600) to (0, 0)
[task 2024-10-08T17:54:45.092Z] 17:54:45     INFO -  REFTEST INFO | REFTEST fuzzy test (1, 8000) <= (0, 0) <= (1, 9600)
[task 2024-10-08T17:54:45.092Z] 17:54:45  WARNING -  REFTEST TEST-UNEXPECTED-PASS | layout/reftests/css-blending/background-blending-color.html == layout/reftests/css-blending/background-blending-color-ref.svg | image comparison, max difference: 0, number of differing pixels: 0
<...>
[task 2024-10-08T17:54:45.135Z] 17:54:45     INFO -  REFTEST TEST-END | layout/reftests/css-blending/background-blending-color.html == layout/reftests/css-blending/background-blending-color-ref.svg

Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d4ab64473597 Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/46baa027678a Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/ed35ad3fdf9c Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond,taskgraph-reviewers,jmaher
Backout by csabou@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8a1fa23df5f9 Backed out 3 changesets for causing reftest failures on 1412375. CLOSED TREE

fuzzy-if((!nogpu&&....

on the failing test. Did you mean to have the ! in there?

Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/90218d9fb410 Part 1: Allow UtilityAudioDecoderChild::CreateVideoBridge to work without a GPU process. r=aosmond https://hg.mozilla.org/integration/autoland/rev/c8be4eae972c Part 2: Add a no-gpu-process test variant for reftests and media mochitests. r=taskgraph-reviewers,gfx-reviewers,jcristau,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/5c17ec5dca7b Part 3: Update fuzziness of reftests with no gpu process. r=gfx-reviewers,aosmond,taskgraph-reviewers,jmaher
Status: REOPENED → RESOLVED
Closed: 2 years ago → 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 133 Branch

Looks like this will finally stick.

Flags: needinfo?(bwerth)
See Also: → 1935963

Comment on attachment 9466114 [details]
Bug 1919114. Extend expiration of no-gpu-process variant. r?#gfx-reviewers

Revision D238163 was moved to bug 1948189. Setting attachment 9466114 [details] to obsolete.

Attachment #9466114 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: