Solari6 various improvements#40
Merged
JMS55 merged 37 commits intoJMS55:solari6-variousfrom Oct 31, 2025
Merged
Conversation
# Objective Currently the docs for [`SpawnScene`](https://docs.rs/bevy/latest/bevy/app/struct.SpawnScene.html) link to the [`Main`](https://docs.rs/bevy/latest/bevy/prelude/struct.Main.html) schedule, but those docs don't mention when it runs. ## Solution Updates docs to include this information, based on the schedule ordering defined here: https://github.com/bevyengine/bevy/blob/78d940cbfe177e3585fe19145e73c76172f4085e/crates/bevy_app/src/main_schedule.rs#L222-L224
# Objective * Make DespawnOnExit more discoverable. * Fix broken link text - the parenthetical before it seems to mess it up. ## Solution * Link directly to DespawnOnExit from the module documentation instead of just the containing module. ## Testing None. Somebody should build the docs to make sure the links actually work (I'm 99% sure they do) and that the `\` added actually fixes the link on line 32 (I'm only 80% sure it does) ## Further Questions I'm wondering if this functionality should be listed in the bulleted list that precedes this paragraph. --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
) # Objective - Fixes bevyengine#20803 - See issue for motivations on this change ## Solution - Use ureq's `platform-verifier` feature and enable it in the agent config. I've gone the simple route and made this non-configurable, for now at least. The downside of this change is that you can longer use webpki-roots but if bevy only supports one certificate verification method then I think platform-verifier is the more sensible option. ## Testing - Tested the web_asset example on Windows and macOS
# Objective The docs state that `Entity::from_row` creates an entity with a generation of `1`, which was the case previously. With `Entity` internals being reworked in `0.17` however, this is no longer the case, as the generation used is now `EntityGeneration::FIRST`, currently equivalent to `0`. ## Solution This PR changes the docs to state an "unspecified" generation to allow further changes to implementation without needing another rewrite, as the docs rather consistently refer to `Entity`, `EntityRow`, and `EntityGeneration` as being opaque identifiers.
# Objective - Fixes bevyengine#21413 ## Solution - make bevy_input_focus dep on bevy_picking optional ## Testing - ci
# Objective - See rust-lang/rust#145457, we want to remove unconditional `[T; 0]: Default` impl. That would be a breaking change breaking `bevy_ecs` and (a test of) `bevy_camera`. ## Solution - Replace `<[T; 0]>::default()` calls with `[]` ## Testing - It compiles, the `<[T; 0]>::default()` is equivalent to `[]`, no additional testing required
# Objective close bevyengine#21334 ## Solution update linux dependencies in docs
Some small work on virtual geometry. Some other improvements we should do in the future for the builder code: * meshopt_computeSphereBounds instead of merge_spheres * Permissive simplification * Faster vertex locking, copying zeux/meshoptimizer#961 * Try out meshopt's clusterizer/partitioner instead of using metis --------- Co-authored-by: Jasmine Schweitzer <jasmine.schweitzer@nominal.io>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p> <blockquote> <h2>v6.0.0</h2> <h2>What's Changed</h2> <p><strong>BREAKING CHANGE:</strong> this update supports Node <code>v24.x</code>. This is not a breaking change per-se but we're treating it as such.</p> <ul> <li>Update README for download-artifact v5 changes by <a href="https://github.com/yacaovsnc"><code>@yacaovsnc</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/417">actions/download-artifact#417</a></li> <li>Update README with artifact extraction details by <a href="https://github.com/yacaovsnc"><code>@yacaovsnc</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/424">actions/download-artifact#424</a></li> <li>Readme: spell out the first use of GHES by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/431">actions/download-artifact#431</a></li> <li>Bump <code>@actions/artifact</code> to <code>v4.0.0</code></li> <li>Prepare <code>v6.0.0</code> by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/438">actions/download-artifact#438</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> made their first contribution in <a href="https://redirect.github.com/actions/download-artifact/pull/431">actions/download-artifact#431</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v5...v6.0.0">https://github.com/actions/download-artifact/compare/v5...v6.0.0</a></p> <h2>v5.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update README.md by <a href="https://github.com/nebuk89"><code>@nebuk89</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/407">actions/download-artifact#407</a></li> <li>BREAKING fix: inconsistent path behavior for single artifact downloads by ID by <a href="https://github.com/GrantBirki"><code>@GrantBirki</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/416">actions/download-artifact#416</a></li> </ul> <h2>v5.0.0</h2> <h3>🚨 Breaking Change</h3> <p>This release fixes an inconsistency in path behavior for single artifact downloads by ID. <strong>If you're downloading single artifacts by ID, the output path may change.</strong></p> <h4>What Changed</h4> <p>Previously, <strong>single artifact downloads</strong> behaved differently depending on how you specified the artifact:</p> <ul> <li><strong>By name</strong>: <code>name: my-artifact</code> → extracted to <code>path/</code> (direct)</li> <li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted to <code>path/my-artifact/</code> (nested)</li> </ul> <p>Now both methods are consistent:</p> <ul> <li><strong>By name</strong>: <code>name: my-artifact</code> → extracted to <code>path/</code> (unchanged)</li> <li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted to <code>path/</code> (fixed - now direct)</li> </ul> <h4>Migration Guide</h4> <h5>✅ No Action Needed If:</h5> <ul> <li>You download artifacts by <strong>name</strong></li> <li>You download <strong>multiple</strong> artifacts by ID</li> <li>You already use <code>merge-multiple: true</code> as a workaround</li> </ul> <h5>⚠️ Action Required If:</h5> <p>You download <strong>single artifacts by ID</strong> and your workflows expect the nested directory structure.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/download-artifact/commit/018cc2cf5baa6db3ef3c5f8a56943fffe632ef53"><code>018cc2c</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/438">#438</a> from actions/danwkennedy/prepare-6.0.0</li> <li><a href="https://github.com/actions/download-artifact/commit/815651c680ffe1c95719d0ed08aba1a2f9d5c177"><code>815651c</code></a> Revert "Remove <code>github.dep.yml</code>"</li> <li><a href="https://github.com/actions/download-artifact/commit/bb3a066a8babc8ed7b3e4218896c548fe34e7115"><code>bb3a066</code></a> Remove <code>github.dep.yml</code></li> <li><a href="https://github.com/actions/download-artifact/commit/fa1ce46bbd11b8387539af12741055a76dfdf804"><code>fa1ce46</code></a> Prepare <code>v6.0.0</code></li> <li><a href="https://github.com/actions/download-artifact/commit/4a24838f3d5601fd639834081e118c2995d51e1c"><code>4a24838</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/431">#431</a> from danwkennedy/patch-1</li> <li><a href="https://github.com/actions/download-artifact/commit/5e3251c4ff5a32e4cf8dd4adaee0e692365237ae"><code>5e3251c</code></a> Readme: spell out the first use of GHES</li> <li><a href="https://github.com/actions/download-artifact/commit/abefc31eafcfbdf6c5336127c1346fdae79ff41c"><code>abefc31</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/424">#424</a> from actions/yacaovsnc/update_readme</li> <li><a href="https://github.com/actions/download-artifact/commit/ac43a6070aa7db8a41e756e7a2846221edca7027"><code>ac43a60</code></a> Update README with artifact extraction details</li> <li><a href="https://github.com/actions/download-artifact/commit/de96f4613b77ec03b5cf633e7c350c32bd3c5660"><code>de96f46</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/417">#417</a> from actions/yacaovsnc/update_readme</li> <li><a href="https://github.com/actions/download-artifact/commit/7993cb44e9052f2f08f9b828ae5ef3ecca7d2ac7"><code>7993cb4</code></a> Remove migration guide for artifact download changes</li> <li>Additional commits viewable in <a href="https://github.com/actions/download-artifact/compare/v4...v6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Objective - bevyengine#21664 broke CI. Failures wasn't triggered by this PR as it's the CI that runs from the main branch ## Solution - download-artifact v5 changed how artefacts are handled. we met a case not documented in their breaking change
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p> <blockquote> <h2>v5.0.0</h2> <h2>What's Changed</h2> <p><strong>BREAKING CHANGE:</strong> this update supports Node <code>v24.x</code>. This is not a breaking change per-se but we're treating it as such.</p> <ul> <li>Update README.md by <a href="https://github.com/GhadimiR"><code>@GhadimiR</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/681">actions/upload-artifact#681</a></li> <li>Update README.md by <a href="https://github.com/nebuk89"><code>@nebuk89</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/712">actions/upload-artifact#712</a></li> <li>Readme: spell out the first use of GHES by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/727">actions/upload-artifact#727</a></li> <li>Update GHES guidance to include reference to Node 20 version by <a href="https://github.com/patrikpolyak"><code>@patrikpolyak</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/725">actions/upload-artifact#725</a></li> <li>Bump <code>@actions/artifact</code> to <code>v4.0.0</code></li> <li>Prepare <code>v5.0.0</code> by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/734">actions/upload-artifact#734</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/GhadimiR"><code>@GhadimiR</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/681">actions/upload-artifact#681</a></li> <li><a href="https://github.com/nebuk89"><code>@nebuk89</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/712">actions/upload-artifact#712</a></li> <li><a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/727">actions/upload-artifact#727</a></li> <li><a href="https://github.com/patrikpolyak"><code>@patrikpolyak</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/725">actions/upload-artifact#725</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v4...v5.0.0">https://github.com/actions/upload-artifact/compare/v4...v5.0.0</a></p> <h2>v4.6.2</h2> <h2>What's Changed</h2> <ul> <li>Update to use artifact 2.3.2 package & prepare for new upload-artifact release by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/685">actions/upload-artifact#685</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/685">actions/upload-artifact#685</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v4...v4.6.2">https://github.com/actions/upload-artifact/compare/v4...v4.6.2</a></p> <h2>v4.6.1</h2> <h2>What's Changed</h2> <ul> <li>Update to use artifact 2.2.2 package by <a href="https://github.com/yacaovsnc"><code>@yacaovsnc</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/673">actions/upload-artifact#673</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v4...v4.6.1">https://github.com/actions/upload-artifact/compare/v4...v4.6.1</a></p> <h2>v4.6.0</h2> <h2>What's Changed</h2> <ul> <li>Expose env vars to control concurrency and timeout by <a href="https://github.com/yacaovsnc"><code>@yacaovsnc</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/662">actions/upload-artifact#662</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v4...v4.6.0">https://github.com/actions/upload-artifact/compare/v4...v4.6.0</a></p> <h2>v4.5.0</h2> <h2>What's Changed</h2> <ul> <li>fix: deprecated <code>Node.js</code> version in action by <a href="https://github.com/hamirmahal"><code>@hamirmahal</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/578">actions/upload-artifact#578</a></li> <li>Add new <code>artifact-digest</code> output by <a href="https://github.com/bdehamer"><code>@bdehamer</code></a> in <a href="https://redirect.github.com/actions/upload-artifact/pull/656">actions/upload-artifact#656</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/hamirmahal"><code>@hamirmahal</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/578">actions/upload-artifact#578</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/upload-artifact/commit/330a01c490aca151604b8cf639adc76d48f6c5d4"><code>330a01c</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/734">#734</a> from actions/danwkennedy/prepare-5.0.0</li> <li><a href="https://github.com/actions/upload-artifact/commit/03f282445299bbefc96171af272a984663b63a26"><code>03f2824</code></a> Update <code>github.dep.yml</code></li> <li><a href="https://github.com/actions/upload-artifact/commit/905a1ecb5915b264cbc519e4eb415b5d82916018"><code>905a1ec</code></a> Prepare <code>v5.0.0</code></li> <li><a href="https://github.com/actions/upload-artifact/commit/2d9f9cdfa99fedaddba68e9b5b5c281eca26cc63"><code>2d9f9cd</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/725">#725</a> from patrikpolyak/patch-1</li> <li><a href="https://github.com/actions/upload-artifact/commit/9687587dec67f2a8bc69104e183d311c42af6d6f"><code>9687587</code></a> Merge branch 'main' into patch-1</li> <li><a href="https://github.com/actions/upload-artifact/commit/2848b2cda0e5190984587ec6bb1f36730ca78d50"><code>2848b2c</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/727">#727</a> from danwkennedy/patch-1</li> <li><a href="https://github.com/actions/upload-artifact/commit/9b511775fd9ce8c5710b38eea671f856de0e70a7"><code>9b51177</code></a> Spell out the first use of GHES</li> <li><a href="https://github.com/actions/upload-artifact/commit/cd231ca1eda77976a84805c4194a1954f56b0727"><code>cd231ca</code></a> Update GHES guidance to include reference to Node 20 version</li> <li><a href="https://github.com/actions/upload-artifact/commit/de65e23aa2b7e23d713bb51fbfcb6d502f8667d8"><code>de65e23</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/712">#712</a> from actions/nebuk89-patch-1</li> <li><a href="https://github.com/actions/upload-artifact/commit/8747d8cd7632611ad6060b528f3e0f654c98869c"><code>8747d8c</code></a> Update README.md</li> <li>Additional commits viewable in <a href="https://github.com/actions/upload-artifact/compare/v4...v5">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 8.2.0 to 8.2.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/super-linter/super-linter/releases">super-linter/super-linter's releases</a>.</em></p> <blockquote> <h2>v8.2.1</h2> <h2><a href="https://github.com/super-linter/super-linter/compare/v8.2.0...v8.2.1">8.2.1</a> (2025-10-15)</h2> <h3>🐛 Bugfixes</h3> <ul> <li>biome ignore errors on unmatched files (<a href="https://redirect.github.com/super-linter/super-linter/issues/7089">#7089</a>) (<a href="https://github.com/super-linter/super-linter/commit/8d1cfd5ca320fa3a3cdb9718b78b71106b3867e6">8d1cfd5</a>)</li> <li>handle pull_request_target (<a href="https://redirect.github.com/super-linter/super-linter/issues/7088">#7088</a>) (<a href="https://github.com/super-linter/super-linter/commit/188a10fdb3a991cc813af934f03c634e03c178bd">188a10f</a>)</li> <li>handle schedule and workflow_dispatch events (<a href="https://redirect.github.com/super-linter/super-linter/issues/7098">#7098</a>) (<a href="https://github.com/super-linter/super-linter/commit/28cb079925f2c003a9781ead0eec64e8278c93df">28cb079</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7095">#7095</a></li> <li>set CONFLICT_FOUND as expected (<a href="https://redirect.github.com/super-linter/super-linter/issues/7093">#7093</a>) (<a href="https://github.com/super-linter/super-linter/commit/07cfe7eb123bd56fbd1c73d274193c488ad2e60f">07cfe7e</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7092">#7092</a></li> <li>strip workspace from the regex check path (<a href="https://redirect.github.com/super-linter/super-linter/issues/7110">#7110</a>) (<a href="https://github.com/super-linter/super-linter/commit/3b72a2d2c03b9db79296a430a534d0e6b003c8dc">3b72a2d</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7086">#7086</a></li> <li>validate DEFAULT_BRANCH when using find (<a href="https://redirect.github.com/super-linter/super-linter/issues/7119">#7119</a>) (<a href="https://github.com/super-linter/super-linter/commit/7508f4ccb749f1d5b9328aca04bfdeda2e9f8542">7508f4c</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7117">#7117</a></li> </ul> <h3>⬆️ Dependency updates</h3> <ul> <li><strong>docker:</strong> bump the docker group with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7100">#7100</a>) (<a href="https://github.com/super-linter/super-linter/commit/28c568121b3f6b7167c8892e422d102bbcc8eb69">28c5681</a>)</li> <li><strong>npm:</strong> bump eslint from 9.36.0 to 9.37.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7102">#7102</a>) (<a href="https://github.com/super-linter/super-linter/commit/cf6cb1ebfa9a5acc42b8897b270b94214f0bb3cc">cf6cb1e</a>)</li> <li><strong>npm:</strong> bump renovate from 41.132.2 to 41.136.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7107">#7107</a>) (<a href="https://github.com/super-linter/super-linter/commit/495692ff75eb1cc6963c05d614e75f341d06a062">495692f</a>)</li> <li><strong>npm:</strong> bump the eslint-plugins-configs group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7101">#7101</a>) (<a href="https://github.com/super-linter/super-linter/commit/b3a735d16a56266102f0297bf4f48bc13f23aa9b">b3a735d</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 4 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7108">#7108</a>) (<a href="https://github.com/super-linter/super-linter/commit/ce227b3ec86ae4f7d6650674ed1f37877f7f4c34">ce227b3</a>)</li> <li><strong>npm:</strong> bump typescript (<a href="https://redirect.github.com/super-linter/super-linter/issues/7109">#7109</a>) (<a href="https://github.com/super-linter/super-linter/commit/deba11c880239ab04bcd11a8b5cde914b13db740">deba11c</a>)</li> <li><strong>python:</strong> bump the pip group across 1 directory with 7 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7106">#7106</a>) (<a href="https://github.com/super-linter/super-linter/commit/7c02a56ba63719acef55b8e6865582f7dc4465b2">7c02a56</a>)</li> </ul> <h3>🧰 Maintenance</h3> <ul> <li>add missing ruff variables to readme (<a href="https://redirect.github.com/super-linter/super-linter/issues/7091">#7091</a>) (<a href="https://github.com/super-linter/super-linter/commit/7daeceba58e1d1d43afdd9df96070ba6bfbc37fb">7daeceb</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7099">#7099</a></li> <li>explain who ignores VALIDATE_ALL_CODEBASE (<a href="https://redirect.github.com/super-linter/super-linter/issues/7111">#7111</a>) (<a href="https://github.com/super-linter/super-linter/commit/9150eb9b2be254146a684b5f97b10b3ed16882a9">9150eb9</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7090">#7090</a></li> <li><strong>github-actions:</strong> bump peter-evans/create-issue-from-file (<a href="https://redirect.github.com/super-linter/super-linter/issues/7103">#7103</a>) (<a href="https://github.com/super-linter/super-linter/commit/ec80a773933c4215f8450a7eeb5b617436fe7d03">ec80a77</a>)</li> <li>update rack to 3.2.3 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7136">#7136</a>) (<a href="https://github.com/super-linter/super-linter/commit/2e6ad3dff5b580a3e84c781cd9b0e3555c09414a">2e6ad3d</a>)</li> <li>update ruby transitive dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7115">#7115</a>) (<a href="https://github.com/super-linter/super-linter/commit/00a71f647b0014a246a0fb34caaa0e7640e85070">00a71f6</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md">super-linter/super-linter's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/super-linter/super-linter/compare/v8.2.0...v8.2.1">8.2.1</a> (2025-10-15)</h2> <h3>🐛 Bugfixes</h3> <ul> <li>biome ignore errors on unmatched files (<a href="https://redirect.github.com/super-linter/super-linter/issues/7089">#7089</a>) (<a href="https://github.com/super-linter/super-linter/commit/8d1cfd5ca320fa3a3cdb9718b78b71106b3867e6">8d1cfd5</a>)</li> <li>handle pull_request_target (<a href="https://redirect.github.com/super-linter/super-linter/issues/7088">#7088</a>) (<a href="https://github.com/super-linter/super-linter/commit/188a10fdb3a991cc813af934f03c634e03c178bd">188a10f</a>)</li> <li>handle schedule and workflow_dispatch events (<a href="https://redirect.github.com/super-linter/super-linter/issues/7098">#7098</a>) (<a href="https://github.com/super-linter/super-linter/commit/28cb079925f2c003a9781ead0eec64e8278c93df">28cb079</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7095">#7095</a></li> <li>set CONFLICT_FOUND as expected (<a href="https://redirect.github.com/super-linter/super-linter/issues/7093">#7093</a>) (<a href="https://github.com/super-linter/super-linter/commit/07cfe7eb123bd56fbd1c73d274193c488ad2e60f">07cfe7e</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7092">#7092</a></li> <li>strip workspace from the regex check path (<a href="https://redirect.github.com/super-linter/super-linter/issues/7110">#7110</a>) (<a href="https://github.com/super-linter/super-linter/commit/3b72a2d2c03b9db79296a430a534d0e6b003c8dc">3b72a2d</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7086">#7086</a></li> <li>validate DEFAULT_BRANCH when using find (<a href="https://redirect.github.com/super-linter/super-linter/issues/7119">#7119</a>) (<a href="https://github.com/super-linter/super-linter/commit/7508f4ccb749f1d5b9328aca04bfdeda2e9f8542">7508f4c</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7117">#7117</a></li> </ul> <h3>⬆️ Dependency updates</h3> <ul> <li><strong>docker:</strong> bump the docker group with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7100">#7100</a>) (<a href="https://github.com/super-linter/super-linter/commit/28c568121b3f6b7167c8892e422d102bbcc8eb69">28c5681</a>)</li> <li><strong>npm:</strong> bump eslint from 9.36.0 to 9.37.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7102">#7102</a>) (<a href="https://github.com/super-linter/super-linter/commit/cf6cb1ebfa9a5acc42b8897b270b94214f0bb3cc">cf6cb1e</a>)</li> <li><strong>npm:</strong> bump renovate from 41.132.2 to 41.136.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7107">#7107</a>) (<a href="https://github.com/super-linter/super-linter/commit/495692ff75eb1cc6963c05d614e75f341d06a062">495692f</a>)</li> <li><strong>npm:</strong> bump the eslint-plugins-configs group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7101">#7101</a>) (<a href="https://github.com/super-linter/super-linter/commit/b3a735d16a56266102f0297bf4f48bc13f23aa9b">b3a735d</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 4 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7108">#7108</a>) (<a href="https://github.com/super-linter/super-linter/commit/ce227b3ec86ae4f7d6650674ed1f37877f7f4c34">ce227b3</a>)</li> <li><strong>npm:</strong> bump typescript (<a href="https://redirect.github.com/super-linter/super-linter/issues/7109">#7109</a>) (<a href="https://github.com/super-linter/super-linter/commit/deba11c880239ab04bcd11a8b5cde914b13db740">deba11c</a>)</li> <li><strong>python:</strong> bump the pip group across 1 directory with 7 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7106">#7106</a>) (<a href="https://github.com/super-linter/super-linter/commit/7c02a56ba63719acef55b8e6865582f7dc4465b2">7c02a56</a>)</li> </ul> <h3>🧰 Maintenance</h3> <ul> <li>add missing ruff variables to readme (<a href="https://redirect.github.com/super-linter/super-linter/issues/7091">#7091</a>) (<a href="https://github.com/super-linter/super-linter/commit/7daeceba58e1d1d43afdd9df96070ba6bfbc37fb">7daeceb</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7099">#7099</a></li> <li>explain who ignores VALIDATE_ALL_CODEBASE (<a href="https://redirect.github.com/super-linter/super-linter/issues/7111">#7111</a>) (<a href="https://github.com/super-linter/super-linter/commit/9150eb9b2be254146a684b5f97b10b3ed16882a9">9150eb9</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7090">#7090</a></li> <li><strong>github-actions:</strong> bump peter-evans/create-issue-from-file (<a href="https://redirect.github.com/super-linter/super-linter/issues/7103">#7103</a>) (<a href="https://github.com/super-linter/super-linter/commit/ec80a773933c4215f8450a7eeb5b617436fe7d03">ec80a77</a>)</li> <li>update rack to 3.2.3 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7136">#7136</a>) (<a href="https://github.com/super-linter/super-linter/commit/2e6ad3dff5b580a3e84c781cd9b0e3555c09414a">2e6ad3d</a>)</li> <li>update ruby transitive dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7115">#7115</a>) (<a href="https://github.com/super-linter/super-linter/commit/00a71f647b0014a246a0fb34caaa0e7640e85070">00a71f6</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/super-linter/super-linter/commit/2bdd90ed3262e023ac84bf8fe35dc480721fc1f2"><code>2bdd90e</code></a> chore(main): release 8.2.1 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7094">#7094</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/51e00ddd747163eace0c6c457a14ba3fab178581"><code>51e00dd</code></a> chore: use powershell from dotnet sdk image (<a href="https://redirect.github.com/super-linter/super-linter/issues/7141">#7141</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/2e6ad3dff5b580a3e84c781cd9b0e3555c09414a"><code>2e6ad3d</code></a> chore: update rack to 3.2.3 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7136">#7136</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/7508f4ccb749f1d5b9328aca04bfdeda2e9f8542"><code>7508f4c</code></a> fix: validate DEFAULT_BRANCH when using find (<a href="https://redirect.github.com/super-linter/super-linter/issues/7119">#7119</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/cf6cb1ebfa9a5acc42b8897b270b94214f0bb3cc"><code>cf6cb1e</code></a> deps(npm): bump eslint from 9.36.0 to 9.37.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7102">#7102</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/495692ff75eb1cc6963c05d614e75f341d06a062"><code>495692f</code></a> deps(npm): bump renovate from 41.132.2 to 41.136.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7107">#7107</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/deba11c880239ab04bcd11a8b5cde914b13db740"><code>deba11c</code></a> deps(npm): bump typescript (<a href="https://redirect.github.com/super-linter/super-linter/issues/7109">#7109</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/28c568121b3f6b7167c8892e422d102bbcc8eb69"><code>28c5681</code></a> deps(docker): bump the docker group with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7100">#7100</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/b3a735d16a56266102f0297bf4f48bc13f23aa9b"><code>b3a735d</code></a> deps(npm): bump the eslint-plugins-configs group across 1 directory with 2 up...</li> <li><a href="https://github.com/super-linter/super-linter/commit/ec80a773933c4215f8450a7eeb5b617436fe7d03"><code>ec80a77</code></a> ci(github-actions): bump peter-evans/create-issue-from-file (<a href="https://redirect.github.com/super-linter/super-linter/issues/7103">#7103</a>)</li> <li>Additional commits viewable in <a href="https://github.com/super-linter/super-linter/compare/v8.2.0...v8.2.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…engine#21647) # Objective In bevyengine#21598 and the related Discord discussion, it was pointed out that the `async_compute` example promotes an inefficient and potentially error-prone pattern: `future::block_on(poll_once)`. It is now recommended to use `bevy::tasks::futures::check_ready` instead, which is much cheaper and avoids blocking the main thread while waiting on the future. Another valid approach is to pass a channel into the async tasks and detach them, letting the channel handle task readiness. This PR implements both suggestions. ## Solution * **Updated `async_compute` example** Replaced the use of `future::block_on(poll_once)` with the recommended `check_ready`. The change is minimal and limited to the directly affected lines. * **Added new example: `async_channel_pattern`** Demonstrates how to spawn async tasks using a channel-based communication pattern. * Each task is executed on a separate thread via `AsyncComputeTaskPool`. * Results (cube positions) are sent back through a `CubeChannel` once completed. * Tasks are detached to run fully asynchronously, ensuring the main thread remains unblocked. * A rotating light in the scene visually indicates that the frame loop remains responsive. I am relatively new to both Bevy and async Rust, and I genuinely appreciate any feedback or suggestions to improve these examples — especially regarding idiomatic async patterns and best practices for Bevy task management. Fixes bevyengine#21598 --------- Co-authored-by: syszery <syszery@users.noreply.github.com> Co-authored-by: François Mockers <francois.mockers@vleue.com>
# Objective This PR is to add SSAO support on WebGPU. ## Solution Add r16float detect and fallback to r32float if not supported. FYI the initial ssao PR [here](bevyengine#7402). ## Testing - Did you test these changes? If so, how? Yes, here is the command to test the ssao example `RUSTFLAGS="--cfg getrandom_backend=\"wasm_js\"" cargo run --example ssao --target wasm32-unknown-unknown --features webgpu` and then http://localhost:1334, make sure it supports [WebGPU](https://caniuse.com/webgpu) - Are there any parts that need more testing? N/A - How can other people (reviewers) test your changes? Is there anything specific they need to know? 1. For the R32Float fallback, only the 1st commit is needed. However, I ran into some strange flickering issue on Chrome (and Chrome canary too), so I added a "detect_r16float_support" flag and a temp fix in the 2nd and 3rd commit, which are intended to be reverted when merging. 2. with the 1st commit, Safari works fine, but Chrome has the flickering, and I fixed it by partially reverting a shader change from bevyengine#20313, which is very strange. It is probably caused by some shader optimization issue in Chrome, and I have no clue why, as the change is just moving the calculation to a different function. Here is the flickering on Mac Chrome(140.0.7339.133 (Official Build) (arm64)) <img width="353" height="327" alt="chrome_ssao" src="https://github.com/user-attachments/assets/0666673f-508e-4b57-a152-19327ffdb6f3" /> - If relevant, what platforms did you test these changes on, and are there any important ones you can't test? Tested on native(mac) and WebGPU. To test on native, set "detect_r16float_support" to false to force R32Float. I couldn't make the WebGPU ssao example running on Windows 11 Chrome or Firefox, there is some error in 'taa_pipeline' . ---
# Objective Remove the `line_height` field from `TextFont`. Line height is a property of the text layout, not the font. Part of the changes for bevyengine#21175 ## Solution Remove the `line_height` field from `TextFont`. Make `LineHeight` into a component. Update the text access API and text pipeline.
# Objective - This commit refactors the `from_viewport_and_override` function to improve readability and safety. ## Solution - Replaces the initial `cloned()` and subsequent `if/else` logic with a clearer `if let` structure. - Removes the need for `unwrap()` by handling both `Some` and `None` cases ## Testing - I don't know how to make sure there is no probelm, but I run some examples and I don't see the errors.
# Objective - This PR refactors the Frustum struct to improve code readability and maintainability by replacing magic numbers with named constants and unrolling a loop for clarity. ## Testing - I ran the command 'cargo test --package bevy_camera --lib -- primitives::tests --show-output' and all the test are passed. ---
# Objective For bevyengine#17647, we want to create a `QueryData` that can follow a relation and query data from an entity's parent. If the parent does not have the queried data, the child entity should be skipped in the query. However, there is no way to tell from the child's archetype whether the parent will match! So, we need to support *non-archetypal* `QueryData`, just as we support non-archetypal `QueryFilter`s for `Added` and `Changed`. That is, if `Query<Parent<&T>>` yields `&T`, and we do: ```rust let parent1 = world.spawn(T).id(); let child1 = world.spawn(ChildOf(parent1)); let parent2 = world.spawn(()).id(); let child2 = world.spawn(ChildOf(parent2)); let query = world.query::<Parent<&T>>(); ``` then `query` must yield a row for `child1` but not for `child2`, even though they have the same archetype. ## Solution Change `QueryData::fetch` to return `Option` so that entities can be filtered during fetching by returning `None`. To support `ExactSizeIterator`, introduce an `ArchetypeQueryData` trait and an `QueryData::IS_ARCHETYPAL` associated constant, similar to `ArchetypeFilter` and `QueryFilter::IS_ARCHETYPAL`. Implement this trait on existing `QueryData` types. Modify `ExactSizeIterator` implementations to require `D: ArchetypeQueryData`, and the `size_hint()` methods to return a minimum size of `0` if `!D::IS_ARCHETYPAL`. ## Alternatives We could do nothing here, and have `Query<Parent<&T>>` yield `Option<&T>`. That makes the API less convenient, though. Note that if one *wants* to query for `Option`, they can use either `Query<Option<Parent<&T>>` or `Query<Parent<Option<&T>>`, depending on whether they want to include entities with no parent. Another option is to re-use the `ArchetypeFilter` trait instead of introducing a new one. There are no places where we want to abstract over both, however, and it would require writing bounds like `D: QueryData + ArchetypeFilter, F: QueryFilter + ArchetypeFilter` instead of simply `D: ArchetypeQueryData, F: ArchetypeFilter`. --------- Co-authored-by: Periwink <charlesbour@gmail.com>
Depends on bevyengine#20838 # Objective There's some redundant sampler bindings in the atmosphere code ## Solution Remove them ## Testing Ran the example
# Objective - Splitting out the non-BSN parts of the work on popup menus. ## Solution - Added Popover and Menu components. ## Testing - Manual testing using example. ## Showcase <img width="311" height="261" alt="popup" src="https://github.com/user-attachments/assets/ab9e8959-65bc-45d3-aa36-9d56cc09ea9d" /> --------- Co-authored-by: Viktor Gustavsson <villor94@gmail.com>
…evyengine#21643) # Objective - Fixes bevyengine#10903 ## Solution - Stop using `Path::join` for joining asset paths and instead use `AssetPath::resolve_embed`. ## Testing - Added 2 tests!
# Objective Just a tiny fix of `log_layers` example path in documentation comments. ## Solution The comments are corrected. ## Testing No needed
# Objective
Allows users to override `TextColor` and use a custom color for
underline and strikethrough text decorations.
## Solution
New components `UnderlineColor` and `StrikethroughColor`. Add them to a
text entity with `Underline` or `Strikethrough`, respectively, to use a
custom color for the lines.
#
This could just be an optional color field on `Underline` or
`Strikethrough`, that would be fine. I spent a while going back and
fourth about it. The main reasons why I went with a separate component:
* The same color is almost always used for both text and its
decorations. Overriding `TextColor` is going to be rare.
* Once we have some sort of global or propagated text style support,
underline and strikethrough colors probably won't be set per entity.
The single component approach has some advantages too. Discoverability,
obviously. Also compare:
```rust
(
Text::new("Hello"),
Underline,
UnderlineColor(RED.into())
)
```
with
```rust
(
Text::new("Hello"),
Underline::color(RED),
)
```
which seems clearly nicer. If it weren't for the planned
non-entity-local text styling support, I'd lean more towards the single
component approach.
## Testing
Added a few color overrides to this example:
```
cargo run --example strikethrough
```
## Showcase
<img width="1924" height="1127" alt="strike-under-color"
src="https://github.com/user-attachments/assets/83664f95-0926-4ccb-81e4-a3059cd2ccf3"
/>
…bevyengine#21685) # Objective Tests should be more resilient to entities added on `World` creation. This is necessary for resources-as-components to work without relying on `DefaultQueryFilters`. ## Solution I've added an empty entity during `World::bootstrap()` and ran the test suite (and CI). I've gone and fixed every test, except for the ones where it's not possible / doesn't make sense. Both `iter_entities` and `iter_entities_mut` and their tests have been removed as they were deprecated in 0.17.
# Objective - Computing the ndc from a viewport coordinates is already done in a few places. - It's can be useful for users, not just internally. ## Solution - Extract it to a function ## Testing - I'm using it in a currently unfinished PR for gpu picking and things worked as expected - I also tested 3d_viewport_to_world and 2d_viewport_to_world --------- Co-authored-by: atlv <email@atlasdostal.com>
…_2d_as_array` (bevyengine#21628) # Objective If you want to use a `TilemapChunk` (or more generally use a `texture2DArray` in a shader), you have to implement a mechanism that waits for your texture to load, then calls `Image::reinterpret_stacked_2d_as_array`. ## Solution Have the loader do it instead. Closes bevyengine#20799, which does very similar things and should be remade if more functionality is needed. ## Testing - Ran the updated examples --- ## Showcase ```rs let array_texture = asset_server.load_with_settings( "textures/array_texture.png", |settings: &mut ImageLoaderSettings| { settings.array_layout = Some(ImageArrayLayout::RowCount(4)); }, ); ```
# Objective Ended up with two release notes for strikethrough somehow after the merges or whatever. ## Solution Rename one, delete the other.
…evyengine#21689) # Objective Rename the example, fix a typo in its ("it's") comments.
# Objective Follow up to the underline and strikethrough PRs: * Replace the quintuples stored in `TextLayoutInfo::section_geometry` with a struct with named fields. * Rename `TextLayoutInfo::section_geometry` because "section" in our terminology implies a one-to-one correspondence with text entities. * Add some basic helpers to construct the underline and strikethrough lines. * Seperate the thickness values for underline and strikethrough. This is needed for an API that allows users to set custom thicknesses. ## Solution * New struct `RunGeometry`. `RunGeometry` holds the bounds and decoration geometry for each text run (a contiguous sequence of glyphs on a line that share text attributes). It has helper methods for placing underline and strikethrough. * Rename the `section_geometry` field to `run_geometry` and make it a `Vec<RunGeometry>` * `RunGeometry` has seperate `underline_thickness` and `strikethrough_thickness` values.
# Objective Some macros were handling Idents and indexes as seperate things, we can use syn::Member to make this more readable and nicer. revive of bevyengine#18199
…yengine#16396) # Objective Improve the performance of some dynamic queries with `FilteredEntity(Ref|Mut)` by allowing dense iteration in more cases, and remove a call to the sort-of deprecated `Access::component_reads_and_writes()` method. `QueryBuilder` currently requires sparse iteration if any sparse set components may be read. We do need sparse iteration if sparse set components are used in the filters, but `FilteredEntityRef` can still perform dense iteration when reading optional components or when reading all components. Note that the optional case is different from `Option`, which performs sparse iteration when the inner query is sparse so that it can cache whether the inner query matches for an entire archetype. ## Solution Change `FilteredEntity(Ref|Mut)` to have `IS_DENSE = true`. It used to require sparse iteration in order to filter the `Access` for each archetype, but bevyengine#15207 changed it to copy the entire access. Change `QueryBuilder::is_dense()` to check `D::IS_DENSE && F::IS_DENSE` instead of looking at the component reads and writes. `QueryBuilder::is_dense()` still checks the *filters*, so `builder.data::<&Sparse>()` will still cause sparse iteration, but `builder.data::<Option<&Sparse>>()` no longer will. I believe this is sound, even in the presence of query transmutes. The only `WorldQuery` implementations that rely on a sparse query being sparse for soundness are `&`, `&mut`, `Ref`, and `Mut`, but they can only be transmuted to if the component is in the `required` set. If a dynamic query has the component in the `required` set, then it appears in the filters and the query will use sparse iteration. Note that `Option` and `Has` will misbehave and report `None` and `false` for all entities if they do a dense query while wrapping a sparse component, but they won't cause UB. And it's already possible to hit that case by transmuting from `Query<EntityMut>` to `Query<Option<&Sparse>>`.
# Objective Have the layout of the tile chunk map the world axis. ## Solution Invert the calculated y index in the shader and transform calculation. ## Testing Ran the example and saw 0,0 move to the bottom left instead of the top left. ## Migration People manually calculating the tile index will have to invert the chunk relative y index from the current implementation. For example, with a chunk size of (16, 16) today: (5, 6) in world coords => (5, 9) in chunk coords Changes to: (5, 6) in world coords => (5, 6) in chunk coords --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com> Co-authored-by: Martín Maita <47983254+mnmaita@users.noreply.github.com>
# Objective Text2d underline shadow is being drawn using the strikethrough position and size values. Draw it with the correct geometry. ## Solution Use the underline values.
…ources. (bevyengine#21673) # Objective - Trying to rewrite asset processing to be dynamic is hard, especially since we don't have tests verifying all the situations asset processing is supposed to be able to handle! ## Solution - Add a couple more tests! One to check that processing multiple sources works, and another to check that sending asset events triggers processing (including processing of dependent processing). ## Testing - ;)
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.
No description provided.