Defer Encoding errors to GPUCommandEncoder.finish()
<!-- Please describe your changes on the following line: -->
Errors that occur are stored in `HashMap<id::CommandEncoderId, String>`.
This also upgrades wgpu to v0.6
r?@kvark
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [X] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Bump once_cell from 1.4.0 to 1.4.1
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.4.0 to 1.4.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/matklad/once_cell/blob/master/CHANGELOG.md">once_cell's changelog</a>.</em></p>
<blockquote>
<h2>1.4.1</h2>
<ul>
<li>upgrade <code>parking_lot</code> to <code>0.11.0</code></li>
<li>make <code>sync::OnceCell<T></code> pass <a href="https://doc.rust-lang.org/nomicon/dropck.html#an-escape-hatch%5Bdropck%5D">https://doc.rust-lang.org/nomicon/dropck.html#an-escape-hatch[dropck]</a> with <code>parking_lot</code> feature enabled.
This fixes a (minor) semver-incompatible changed introduced in <code>1.4.0</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="d6b9907273"><code>d6b9907</code></a> ignore code</li>
<li><a href="82b35fedac"><code>82b35fe</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/110">#110</a></li>
<li><a href="9c07280f87"><code>9c07280</code></a> v1.4.1</li>
<li><a href="d5295146e2"><code>d529514</code></a> Make OnceCell pass drock</li>
<li><a href="b340c760cb"><code>b340c76</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/109">#109</a></li>
<li><a href="a4cf20ab7f"><code>a4cf20a</code></a> Update parking_lot to 0.11</li>
<li><a href="0b65b15234"><code>0b65b15</code></a> Merge <a href="https://github-redirect.dependabot.com/matklad/once_cell/issues/107">#107</a></li>
<li><a href="101f4b0456"><code>101f4b0</code></a> fix typo</li>
<li><a href="e5c4a8614c"><code>e5c4a86</code></a> Make it clearer that the "core" API is not the whole API</li>
<li>See full diff in <a href="https://github.com/matklad/once_cell/compare/v1.4.0...v1.4.1">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=once_cell&package-manager=cargo&previous-version=1.4.0&new-version=1.4.1)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Bump clap from 2.33.1 to 2.33.3
Bumps [clap](https://github.com/clap-rs/clap) from 2.33.1 to 2.33.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p>
<blockquote>
<h2>v2.33.2</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h3>v2.33.2 (2020-08-5)</h3>
<h4>Documentation</h4>
<ul>
<li>Fixed links to <code>2.x</code> examples. Now they point to the right place.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/clap-rs/clap/commits">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=clap&package-manager=cargo&previous-version=2.33.1&new-version=2.33.3)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Implement GPUPipelineBase for implicit pipeline layouts
<!-- Please describe your changes on the following line: -->
Store `Vec<WebGPUBindGroupLayout>` in `GPUxxxPipeline` to return a new object from `GetBindGroupLayout()`.
r?@kvark
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because ___
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Update wgpu and WebGPU CTS to include copy validation tests
<!-- Please describe your changes on the following line: -->
r?@kvark
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
<!-- Either: -->
- [X] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Bump smallvec from 1.4.1 to 1.4.2
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.4.1 to 1.4.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/servo/rust-smallvec/releases">smallvec's releases</a>.</em></p>
<blockquote>
<h2>v1.4.2</h2>
<ul>
<li><code>insert_many</code> no longer leaks elements if the provided iterator panics (<a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/213">#213</a>).</li>
<li>The unstable <code>const_generics</code> and <code>specialization</code> features are updated to work with the most recent nightly Rust toolchain (<a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/232">#232</a>).</li>
<li>Internal code cleanup (<a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/229">#229</a>, <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/231">#231</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="9ae70763ec"><code>9ae7076</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/233">#233</a> - mbrubeck:bump, r=jdm</li>
<li><a href="ba0f462138"><code>ba0f462</code></a> Version 1.4.2</li>
<li><a href="87500c3730"><code>87500c3</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/232">#232</a> - c410-f3r:patch-1, r=mbrubeck</li>
<li><a href="0e23d2a307"><code>0e23d2a</code></a> Use min_const_generics</li>
<li><a href="f7e01ef268"><code>f7e01ef</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/230">#230</a> - Atul9:add-cargo-fmt-to-travis-config, r=mbrubeck</li>
<li><a href="f7c7157426"><code>f7c7157</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/231">#231</a> - Atul9:cargo-fmt, r=mbrubeck</li>
<li><a href="7f7ac30ef0"><code>7f7ac30</code></a> Format code using 'cargo fmt'</li>
<li><a href="b3fada197f"><code>b3fada1</code></a> Add cargo fmt to travis build config</li>
<li><a href="cce91caf4c"><code>cce91ca</code></a> Auto merge of <a href="https://github-redirect.dependabot.com/servo/rust-smallvec/issues/213">#213</a> - mbrubeck:leak, r=jdm</li>
<li><a href="8ddf61330d"><code>8ddf613</code></a> Fix leak on panic in <code>insert_many</code>.</li>
<li>Additional commits viewable in <a href="https://github.com/servo/rust-smallvec/compare/v1.4.1...v1.4.2">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=smallvec&package-manager=cargo&previous-version=1.4.1&new-version=1.4.2)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Bump serde from 1.0.111 to 1.0.115
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.111 to 1.0.115.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.115</h2>
<ul>
<li>Support <code>#[serde(flatten)]</code> on a field whose type is a type parameter and concrete type is <code>()</code> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/1873">#1873</a>)</li>
</ul>
<h2>v1.0.114</h2>
<ul>
<li>Improve <code>packed</code> repr matching to support deriving Serialize for structs having <code>repr(C, packed)</code> (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/1813">#1813</a>, thanks <a href="https://github.com/TannerRogalsky">@TannerRogalsky</a>)</li>
</ul>
<h2>v1.0.113</h2>
<ul>
<li>Improve diagnostic when a serde trait is not implemented (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/1827">#1827</a>, thanks <a href="https://github.com/taiki-e">@taiki-e</a>)</li>
</ul>
<h2>v1.0.112</h2>
<ul>
<li>Support <code>serde(flatten)</code> on map types where the Serializer only works with serialize_entry (<a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/1837">#1837</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="2ef60b62ac"><code>2ef60b6</code></a> Release 1.0.115</li>
<li><a href="e6f086d85e"><code>e6f086d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/serde-rs/serde/issues/1874">#1874</a> from dtolnay/flatunit</li>
<li><a href="bf76f50294"><code>bf76f50</code></a> Support deserializing flattened unit</li>
<li><a href="ba07075590"><code>ba07075</code></a> Support serializing flattened unit</li>
<li><a href="26186bddd1"><code>26186bd</code></a> Add test for flattened unit</li>
<li><a href="53b9871b17"><code>53b9871</code></a> Quote no longer requires high recursion</li>
<li><a href="f8787c3ca8"><code>f8787c3</code></a> Suppress match_like_matches_macro clippy lint</li>
<li><a href="3022064f84"><code>3022064</code></a> Suppress option_if_let_else clippy pedantic lint</li>
<li><a href="9e140a2071"><code>9e140a2</code></a> Tweak yaml format blurb</li>
<li><a href="24e6acbfae"><code>24e6acb</code></a> Drop 'help or discussion' issue template</li>
<li>Additional commits viewable in <a href="https://github.com/serde-rs/serde/compare/v1.0.111...v1.0.115">compare view</a></li>
</ul>
</details>
<br />
[](https://dependabot.com/compatibility-score/?dependency-name=serde&package-manager=cargo&previous-version=1.0.111&new-version=1.0.115)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
</details>
Implement GPUUncapturedErrorEvent
<!-- Please describe your changes on the following line: -->
A new `uncapturederror` variant is added to atoms/static-atoms.txt. `GPUUncapturedErrorEvent` is fired when an error is not captured by any `ErrorScope`.
All tests for error scopes `PASS` now.
r?@kvark
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [X] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Notify devtools of session history traversals
This makes the remote devtools and devtools panel in FxR clear the console when going backwards and forwards through session history.
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#27525
- [x] These changes do not require tests because no devtools tests.
Fix missing canvas text on UWP
This addresses the missing fonts under UWP by updating font-kit and assorted dependencies that all depend on older incompatible versions of freetype. This also works around #27492 by using a fork of webrender that cherry-picks required dependency updates without bringing in the commit that exposes an ANGLE crash.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#27515
- [x] These changes do not require tests because no UWP tests.
Do not load srcdoc iframes synchronously
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#24718
- [x] There are tests for these changes