Repository navigation
[WebGPU] Generate component inventories from fetched Dawn dependencies - #33448
Closed
Yang Gu (gyagp) wants to merge 1 commit into
Closed
Yang Gu (gyagp) wants to merge 1 commit into
Yang Gu (gyagp) wants to merge 1 commit into
Conversation
Generate build-input manifests from the pinned Dawn fetch list and actual Git checkout revisions. Verify missing/stale checkouts, include independent DXC archive metadata on Windows, and scan/stage the inventory in plugin packaging. Keep the reviewed runtime/development manifest separate. This does not alter Dawn pins or automate package-content classification.
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Jiajia Qin (qjia7)
pushed a commit
that referenced
this pull request
Oct 21, 2026
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Generate a WebGPU component inventory from the Dawn dependencies fetched by a build, then scan and retain it in the Windows, Linux, and macOS plugin packaging pipelines.
metadata/cgmanifest.json, and scan that directory explicitly because the normal scan excludes the build directory containing fetched dependencies.Motivation and Context
Fetched third-party sources should have a reproducible inventory tied to the actual build. This work is separated from the Dawn upgrade command in #33396 so the two workflows can be reviewed and merged independently.
This PR does not change the Dawn pin, patch stack, runtime code, or reviewed dependency classifications. It has no dependency on the upgrade-tool PR.
Validation
Draft for review of the inventory/scanning contract. The packaging pipelines and Component Governance task have not been executed locally.