Repository navigation
[WebGPU] Upgrade Dawn to the latest - #32686
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
/run bots |
|
PTAL, thanks! Jiajia Qin (@qjia7) Jie Chen (@jchen10) |
There was a problem hiding this comment.
π‘ Changes recommended
Update the governance manifest, correct the malformed patch hunk, and resolve the Windows DXIL packaging dependency.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Upgrades the bundled Dawn dependency for WebGPU and removes obsolete dxil.dll staging.
Changes:
- Pins Dawn to
v20260916.214021. - Refreshes the Dawn BinSkim patch.
- Removes DXIL packaging from Windows Python, Node.js, Java, and WebGPU builds.
File summaries
| File | Summary |
|---|---|
cmake/deps.txt |
Updates the Dawn archive and hash; the governance manifest also requires updating. |
cmake/patches/dawn/dawn_binskim.patch |
Refreshes the BinSkim patch, but its hunk header is malformed. |
cmake/onnxruntime_providers_webgpu.cmake |
Removes DXIL staging while downstream Windows packaging still expects the DLL. |
cmake/onnxruntime_python.cmake |
Removes obsolete DXIL packaging. |
cmake/onnxruntime_nodejs.cmake |
Removes obsolete Node.js DXIL packaging. |
cmake/onnxruntime_java.cmake |
Removes obsolete Java DXIL packaging. |
Review details
Suppressed comments (1)
cmake/deps.txt:62
- Rolling the Dawn archive without updating
cgmanifests/webgpu/cgmanifest.webgpu.jsonleaves the WebGPU Component Governance manifest on the old Dawn commit and dependency graph. The manifest's maintenance instructions require its root and Dawn-derived registrations to matchcmake/deps.txt; otherwise NOTICE/component scans can report the wrong source (and the stale-pin validator cannot pass once its Dawn extraction is corrected). Please update/regenerate that manifest forv20260916.214021in this change.
dawn;https://github.com/google/dawn/archive/refs/tags/v20260916.214021.zip;514e914f23a0787213c89eed879f74b5e275690d
- Files reviewed: 6/6 changed files
- Comments generated: 2
- Review effort level: Lite (auto)
Note
Copilot is running an experiment and ran this review at Lite.
π‘ Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
The request was received. Approve workflow runs. Thanks. |
|
/run bots |
|
The request was received. Approve workflow runs. Thanks. |
|
|
/run bots |
|
The request was received. Approve workflow runs. Thanks. |
|
I think there are a few other places which still copy or refer to dxil.dll. e.g.:
do those need to be updated too? |
if this is referring to |
|
/run bots |
|
The request was received. Approve workflow runs. Thanks. |
Yes, I have updated them. Thanks. |
|
/run bots |
|
The request was received. Approve workflow runs. Thanks. |
|
/run bots |
|
The request was received. Approve workflow runs. Thanks. |
|
could you please also update this SwiftShader commit to match the one pinned by the new Dawn version? |
28c198a
|
/run bots |
|
Just curious, do we need to update these hashes manually now? I think we should maintain some script to make the upgrade easier. |
|
The request was received. Approve workflow runs. Thanks. |
I agree, that would make things much easier. |
|
PTAL again, thanks! Jiajia Qin (@qjia7) Edward Chen (@edgchen1) |
LGTM, please wait for Edward Chen (@edgchen1)'s review. Thanks. |
fb8905b
into
microsoft:main
Remove the completed DXIL migration recipe and its command-line option. Keep archive pin/checksum generation, reviewed dependency registrations, SwiftShader synchronization, and ordered patch refreshes in one workflow. Write a Markdown review report alongside the JSON report and patch. Report existing manifest drift and preserve patch-inspection errors as blockers without applying partial edits. Match fetched dependencies by repository and commit so one revision cannot stand in for another checkout. Document the distinction between reviewed manifests and fetched build inventories. Preserve independent DXC release/package metadata. Validation: 49 tests and 24 subtests pass; Ruff and whitespace checks pass. Replaying microsoft#33390 generates both changed files exactly. Both microsoft#32686 and microsoft#33390 replays reproduce all dependency identities/pins and final patched source, with idempotent apply/check. No dependency roll is applied here.
Dawn updates currently require coordinating the archive pin, dependency hashes, SwiftShader revision, and local patches. Add a single command to prepare, apply, and validate these changes together: ```sh python plugin-ep-webgpu/tools/dawn/update_dawn.py ``` The command defaults to the newest dated Dawn tag. Use `--revision <tag-or-full-commit>` to select a specific version. It records the concrete revision and checksum, updates the reviewed dependency manifest and Linux test SwiftShader pin, and refreshes active patches in CMake order. Refreshed patches must reproduce the expected source with zero fuzz or offsets. The command verifies written contents and automatically validates the manifest against the selected checkout. Unresolved patches or dependency changes needing classification stop the update; writing or final-validation failures trigger restoration of every attempted file, continuing after individual restoration errors and reporting them alongside the original failure. Reports and a diff are saved under `build/dawn-upgrade/`, and repeating the same update makes no further edits. Dependency classifications and the independently packaged DXC release are preserved. DXIL handling is outside the scope. A manifest-only updater remains available for focused maintenance. This PR contains eight tooling, test, and documentation files. Build-inventory generation and packaging-pipeline integration are in #33448. Dawn version updates generated during local validation are separate from this PR. Validation: - 49 tests and 29 subtests passed with ordinary and aliased Windows temporary paths, including real GNU patch application, latest-tag resolution, metadata preservation, repeat runs, persistent write failures, partial writes, and multiple rollback failures. Recovery was also verified with a real read-only manifest. - Ruff lint/format and Git whitespace checks passed. - An isolated update from `v20261013.193955` to `v20261016.190333` changed nine files and passed automatic manifest and strict patch validation. A second invocation changed zero files. - Earlier pinned comparisons reproduced #33390's two changed files exactly and #32686's dependency identities and revisions. The command automates source updates and metadata/patch validation. Build, package, and GPU tests remain necessary to establish runtime compatibility for each Dawn update.
Description
This patch updates Dawn to the latest version.
Motivation and Context
D3D12 XMX support for ORT-EP-WebGPU Python wheels will be added in another patch after the upgrade of Dawn.