Closed Bug 1821219 Opened 1 year ago Closed 1 year ago

Automatic pipeline layout

Categories

(Core :: Graphics: WebGPU, defect, P1)

defect

Tracking

()

RESOLVED FIXED
114 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox111 --- unaffected
firefox112 --- unaffected
firefox113 --- disabled
firefox114 --- fixed

People

(Reporter: jimb, Assigned: jimb)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression, Whiteboard: [webgpu-cts-fail])

Attachments

(2 files)

The WebGPU spec says:

enum GPUAutoLayoutMode {
    "auto"
};

dictionary GPUPipelineDescriptorBase : GPUObjectDescriptorBase {
    required (GPUPipelineLayout or GPUAutoLayoutMode) layout;
};

but Mozilla Central's dom/webidl/WebGPU.webidl says:

dictionary GPUPipelineDescriptorBase : GPUObjectDescriptorBase {
    GPUPipelineLayout layout;
};

This leads to WebGPU CTS failures like:

assert_unreached: - EXCEPTION: GPUDevice.createComputePipeline: 'layout' member of GPUPipelineDescriptorBase is not an object. testAdapter@https://web-platform.test:8443/_mozilla/webgpu/webgpu/api/operation/adapter/requestAdapter.spec.js:35:27 Reached unreachable code

wpt_fn@https://web-platform.test:8443/_mozilla/webgpu/common/runtime/wpt.js:65:25
Duplicate of this bug: 1814090

The following field has been copied from a duplicate bug:

Field Value Source
Regressed by bug 1720941 bug 1814090

For more information, please visit auto_nag documentation.

Type: task → defect
Keywords: regression
Regressed by: webgpu-cts

:ErichDonGubler, since you are the author of the regressor, bug 1720941, could you take a look?

For more information, please visit auto_nag documentation.

Flags: needinfo?(egubler)
Assignee: nobody → jimb

Yes, this is just a restatement of that bug with a better description.

Flags: needinfo?(egubler)

Easiest way to reproduce:

  • Make sure that testing/web-platform/mozilla/meta/webgpu/__dir__.ini doesn't have a disabled: property that causes all tests to be skipped.

  • Edit testing/web-platform/mozilla/tests/webgpu/chunked/1/cts.https.html and remove all but the following <meta> element (the first, at the moment):

    <meta name=variant content='?q=webgpu:api,operation,adapter,requestAdapter:requestAdapter:*'>
    
  • In the shell:

    $ ./mach wpt /_mozilla/webgpu/chunked/1
    

:jimb: WPT pro tip: You can also paste the variant query params (the content of the, err, content attribute) as part of the URL; meaning, your above repro steps can also be simplified to:

  1. Make sure that testing/web-platform/mozilla/meta/webgpu/__dir__.ini doesn't have a disabled: property that causes all tests to be skipped.
  2. Run ./mach wpt '/_mozilla/webgpu/chunked/1/cts.https.html?q=webgpu:api,operation,adapter,requestAdapter:requestAdapter:*'

It can be even faster to use the repro link in the bug I originally filed (1814090), which uses this URL to use the latest upstream of the test: https://gpuweb.github.io/cts/standalone/?runnow=1&q=webgpu%3Aapi%2Coperation%2Ccompute_pipeline%2C*. WebGPU CTS' current documentation/culture strongly encourages the use of its standalone testing for debugging. However, I do consider it important to have instructions to reliably reproduce a failure given a Mercurial revision, so this would be a strictly additive suggestion.

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

Adapt WebGPU.webidl for gpuweb#2657, which changed the way to request automatic pipeline layout: rather than simply omitting the layout property from the pipeline descriptor, you now need to say layout: "auto".

The change causes around ~5000 unexpected passes in the WebGPU CTS, so the expectations need to be updated. Just attaching the CTS output for the record - it took 45min to run, so I don't want to have to recreate it.

The change causes around ~5000 unexpected passes in the WebGPU CTS

It turns out most of these were due to differences between my machine (on which WebGPU does well) and the CI machines (on which it does less well).

New try push, which will produce new expectation data for the CI machines as an artifact:
https://treeherder.mozilla.org/jobs?repo=try&revision=589a0d0bec824ad5b9a2a8420b3f534f76f43099

No longer blocks: 1826677

That try push didn't run any WebGPU web platform tests. :(

New mach try fuzzy push with query 'web-platform-tests !tsan !asan !macos !android:
https://treeherder.mozilla.org/jobs?repo=try&revision=04af64441b0806d1fd02657df6c8b71eac5445b4

That try push doesn't show any unexpected passes, as far as I can tell, so I'm just going to proceed with landing this and see how it goes.

Duplicate of this bug: 1827004
Duplicate of this bug: 1827005

I don't think it makes sense to keep this bug as a dependency of webgpu-v1, since it's also a dependency of webgpu-v1-cts-blockers and no-webgpu-samples-shim. Removing blocking relationship to webgpu-v1.

No longer blocks: webgpu-v1
Pushed by jblandy@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0553eee21121
Update WebGPU.webidl for new automatic pipeline layout. r=webgpu-reviewers,webidl,teoxoy,smaug
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 114 Branch

The patch landed in nightly and beta is affected.
:jimb, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox113 to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(jimb)

This shouldn't be in beta at all; just nightly. I don't think uplifting makes sense, and feel confident enough to make this call before :jimb starts his work day. I'll pick fix-optional, to be consistent with firefox113's field.

Flags: needinfo?(jimb)

Yes - WebGPU is disabled on beta at several levels.

marking 114 (nightly) back as fixed, since it already landed in 114 in https://bugzilla.mozilla.org/show_bug.cgi?id=1821219#c17
marking 113 (beta) as disabled since WebGPU is disabled in beta

Duplicate of this bug: 1811632
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: