Closed Bug 1910150 Opened 7 months ago Closed 7 months ago

Update wgpu to 9c6ae1be (Wed Jul 31 2024)

Categories

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

task

Tracking

()

RESOLVED FIXED
131 Branch
Tracking Status
firefox131 --- fixed

People

(Reporter: jimb, Assigned: jimb)

References

(Blocks 1 open bug)

Details

Attachments

(4 files, 3 obsolete files)

This import of wgpu trunk is going to require us to update the windows crate to version 0.58. I've been working actively with :glandium on this, and there are wrinkles which we're in the process of working out (bug 1910056 is a placeholder for one of the problems we ran into).

Summary: Update wgpu to 591e1d2a0 (2024-7-24) → Update wgpu to 591e1d2a0 (2024-07-24)
Assignee: nobody → jimb
Status: NEW → ASSIGNED

Add audits for the following, based on trusted author Kenny Kerr

  • windows-implement
  • windows-interface
  • windows-result
  • windows-strings

Update imports.lock accordingly.

Add delta audits up to:

  • bit-set 0.8.0
  • bit-vec 0.8.0
  • d3d12 22.0.0
  • gpu-allocator 0.27.0
  • naga 22.0.0
  • wgpu-core 22.0.0
  • wgpu-hal 22.0.0
  • wgpu-types 22.0.0
Attachment #9416905 - Attachment description: Bug 1910150: New audits for windows-rs 0.58. r?#supply-chain-reviewers! → Bug 1910150: New audits for windows-rs 0.58. r=#supply-chain-reviewers!
Attachment #9416906 - Attachment description: Bug 1910150: Audit crates for wgpu update. r?#supply-chain-reviewers! → Bug 1910150: Audit crates for wgpu update. r=#supply-chain-reviewers!
Summary: Update wgpu to 591e1d2a0 (2024-07-24) → Update wgpu to 9c6ae1be (Wed Jul 31 2024)

Remove unneeded delta audits from published crate version 0.20.0 to
git commit aeb2067e, which are no longer needed since we added delta
audits from 0.20.0 to 22.0.0, together with delta audits from 22.0.0
to the current wgpu trunk commit.

This removes audits for:

  • d3d12
  • naga
  • wgpu-core
  • wgpu-hal
  • wgpu-types

Update the following crates in third_party/rust to commit 9c6ae1be
from github.com/gfx-rs/wgpu:

  • d3d12
  • naga
  • wgpu-core
  • wgpu-hal
  • wgpu-types

Update the windows Microsoft Windows binding crate to 0.58.

  • Update taskcluster/kinds/fetch/toolchains.yml to request version
    0.58 of the windows crate.
  • Update build/rust/mozbuild/generate_buildconfig.py and
    toolkit/moz.configure as needed.
  • Vendor the following new crates into third_party/rust:
    • windows-core
    • windows-implement
    • windows-interface
    • windows-result
    • windows-strings

New failures around countLeadingZeros: EDIT: this is misleading. These error messages are correct WebGPU behavior, and have nothing to do with the failure, which seems to be a hang, since there's no output for five minutes in this stretch of the log:

[task 2024-08-02T21:13:09.109Z] 21:13:09     INFO - PID 18184 | [ERROR wgpu_core::device::global] Device::create_shader_module error:
[task 2024-08-02T21:13:09.109Z] 21:13:09     INFO - PID 18184 |     Shader '' parsing error: expected global item ('struct', 'const', 'var', 'alias', ';', 'fn') or the end of the file, found 'enable'
[task 2024-08-02T21:13:09.109Z] 21:13:09     INFO - PID 18184 |       ┌─ wgsl:1:1
[task 2024-08-02T21:13:09.111Z] 21:13:09     INFO - PID 18184 |       │
[task 2024-08-02T21:13:09.111Z] 21:13:09     INFO - PID 18184 |     1 │ enable f16;
[task 2024-08-02T21:13:09.111Z] 21:13:09     INFO - PID 18184 |       │ ^^^^^^ expected global item ('struct', 'const', 'var', 'alias', ';', 'fn') or the end of the file
[task 2024-08-02T21:18:49.599Z] 21:18:49     INFO - Got timeout in harness
[task 2024-08-02T21:18:49.606Z] 21:18:49     INFO - TEST-UNEXPECTED-TIMEOUT | /_mozilla/webgpu/cts/webgpu/shader/validation/expression/call/builtin/countLeadingZeros/cts.https.html?q=webgpu:shader,validation,expression,call,builtin,countLeadingZeros:float_argument:* | TestRunner hit external timeout (this may indicate a hang)
[task 2024-08-02T21:18:49.607Z] 21:18:49     INFO - TEST-INFO took 344321ms

Original error message that I was concerned about:

[task 2024-08-02T21:13:05.286Z] 21:13:05     INFO - TEST-START | /_mozilla/webgpu/cts/webgpu/shader/validation/expression/call/builtin/countLeadingZeros/cts.https.html?q=webgpu:shader,validation,expression,call,builtin,countLeadingZeros:float_argument:*
[task 2024-08-02T21:13:05.340Z] 21:13:05     INFO - Setting pref dom.webgpu.enabled to true
[task 2024-08-02T21:13:05.358Z] 21:13:05     INFO - Setting pref dom.webgpu.workers.enabled to true
[task 2024-08-02T21:13:08.012Z] 21:13:08     INFO - PID 18184 | [ERROR wgpu_core::device::global] Device::create_shader_module error:
[task 2024-08-02T21:13:08.015Z] 21:13:08     INFO - PID 18184 |     Shader '' parsing error: Cannot apply math function to type
[task 2024-08-02T21:13:08.015Z] 21:13:08     INFO - PID 18184 |       ┌─ wgsl:2:12
[task 2024-08-02T21:13:08.015Z] 21:13:08     INFO - PID 18184 |       │
[task 2024-08-02T21:13:08.015Z] 21:13:08     INFO - PID 18184 |     2 │ const v  = countLeadingZeros(0.0);
[task 2024-08-02T21:13:08.023Z] 21:13:08     INFO - PID 18184 |       │            ^^^^^^^^^^^^^^^^^ see msg
[task 2024-08-02T21:13:08.098Z] 21:13:08     INFO - PID 18184 | [ERROR wgpu_core::device::global] Device::create_shader_module error:
[task 2024-08-02T21:13:08.100Z] 21:13:08     INFO - PID 18184 |     Shader '' parsing error: Cannot apply math function to type
[task 2024-08-02T21:13:08.100Z] 21:13:08     INFO - PID 18184 |       ┌─ wgsl:2:12
[task 2024-08-02T21:13:08.101Z] 21:13:08     INFO - PID 18184 |       │
[task 2024-08-02T21:13:08.102Z] 21:13:08     INFO - PID 18184 |     2 │ const v  = countLeadingZeros(0.0f);
[task 2024-08-02T21:13:08.102Z] 21:13:08     INFO - PID 18184 |       │            ^^^^^^^^^^^^^^^^^ see msg
[task 2024-08-02T21:13:08.192Z] 21:13:08     INFO - PID 18184 | [ERROR wgpu_core::device::global] Device::create_shader_module error:
[task 2024-08-02T21:13:08.192Z] 21:13:08     INFO - PID 18184 |     Shader '' parsing error: expected global item ('struct', 'const', 'var', 'alias', ';', 'fn') or the end of the file, found 'enable'
[task 2024-08-02T21:13:08.196Z] 21:13:08     INFO - PID 18184 |       ┌─ wgsl:1:1
[task 2024-08-02T21:13:08.197Z] 21:13:08     INFO - PID 18184 |       │
[task 2024-08-02T21:13:08.198Z] 21:13:08     INFO - PID 18184 |     1 │ enable f16;
[task 2024-08-02T21:13:08.198Z] 21:13:08     INFO - PID 18184 |       │ ^^^^^^ expected global item ('struct', 'const', 'var', 'alias', ';', 'fn') or the end of the file
Attachment #9417554 - Attachment is obsolete: true

I tried consolidating the removal of the 0.20.0 -> git delta audits with the other audits, but that of course means that the resulting patch can't be landed in advance - the current sources are still using the old delta audit! Shoulda thought of that first, I guess.

Also, it seems that cargo 1.80 differs from 1.79 in the way cargo vendor generates Cargo.toml files, so there are a bunch of extraneous diffs that were getting introduced. It seems like rustup override set 1.79 and deleting the object directories fixed this.

The cargo vendor issue seems to be behind failures like this.

I'm not able to reproduce the countLeadingZeros hang/timeout/crash using the standalone WebGPU CTS test runner. Those error messages are expected (you can't apply countLeadingZeros to floating-point values).

It may be the case that our lack of support for enable is causing problems, but that should not be new with this wgpu update.

Okay, I have a pass for that chip (webgpu7) now. So there's something intermittent here, unfortunately.

Comparing the run that timed out with the successful runs, it seems like all the tests did actually run and pass, but then something caused the browser to not exit when the test was done.

This command also works fine locally:

$ mach wpt /_mozilla/webgpu/cts/webgpu/shader/validation/expression/call/builtin/countLeadingZeros

:glandium has also asked me to rebase this on top of bug 1910056.

Attachment #9417556 - Attachment is obsolete: true
Attachment #9416906 - Attachment is obsolete: true
Attachment #9417555 - Attachment description: Bug 1910150: Automatic update to imports.lock. r=#supply-chain-reviewers! → Bug 1910150: supply-chain/imports.lock changes from `mach cargo vet` on clean tree. r=#supply-chain-reviewers

Update the windows Microsoft Windows binding crate to 0.58.

  • Update taskcluster/kinds/fetch/toolchains.yml to request version
    0.58 of the windows crate.
  • Update build/rust/windows/Cargo.toml to present itself as 0.58.
  • Vendor the following new crates into third_party/rust:
    • windows-core
    • windows-implement
    • windows-interface
    • windows-result
    • windows-strings
  • Update supply-chain/imports.lock as necessary.

Update the following crates in third_party/rust to commit 9c6ae1be
from github.com/gfx-rs/wgpu:

  • d3d12
  • naga
  • wgpu-core
  • wgpu-hal
  • wgpu-types

Update dependencies:

  • bit-set 0.8.0
  • bit-vec 0.8.0
  • gpu-allocator 0.27

Make necessary minor changes to gfx/wgpu_bindings.

Add appropriate audits to supply-chain/audits.toml.

Pushed by jblandy@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fd438d9a787d supply-chain/imports.lock changes from `mach cargo vet` on clean tree. r=supply-chain-reviewers https://hg.mozilla.org/integration/autoland/rev/20d31e6ca59d New audits for windows-rs 0.58. r=supply-chain-reviewers https://hg.mozilla.org/integration/autoland/rev/24d8bf09f020 Update windows-rs to 0.58. r=glandium,supply-chain-reviewers https://hg.mozilla.org/integration/autoland/rev/b5f2558e6a60 Update wgpu to 9c6ae1be (2024-7-31) r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler
Regressions: 1912092
Blocks: 1878317
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: