forked from bevyengine/bevy
-
Notifications
You must be signed in to change notification settings - Fork 0
Infallible mesh #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
robtfm
wants to merge
133
commits into
retain-render-assets
Choose a base branch
from
infallible-mesh
base: retain-render-assets
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
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
5f2babf to
e3ad522
Compare
17f22ad to
b11ae9d
Compare
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 8.2.1 to 8.3.0. <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.3.0</h2> <h2><a href="https://github.com/super-linter/super-linter/compare/v8.2.1...v8.3.0">8.3.0</a> (2025-11-28)</h2> <h3>🚀 Features</h3> <ul> <li>add ability to specify config files for nbqa tools (<a href="https://redirect.github.com/super-linter/super-linter/issues/7184">#7184</a>) (<a href="https://github.com/super-linter/super-linter/commit/b37c1c33a78f7cbf9bfa04609b83180319421bfc">b37c1c3</a>)</li> <li>lint dependabot, github actions with zizmor (<a href="https://redirect.github.com/super-linter/super-linter/issues/7241">#7241</a>) (<a href="https://github.com/super-linter/super-linter/commit/09306cdabe5c1afaedcab156e7a75b88575c829b">09306cd</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7137">#7137</a></li> <li>support rust 2024 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7211">#7211</a>) (<a href="https://github.com/super-linter/super-linter/commit/c15ee6dd7d559940b734579617c3637b9c007f6f">c15ee6d</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7139">#7139</a></li> </ul> <h3>🐛 Bugfixes</h3> <ul> <li>parse json to extract terraform version (<a href="https://redirect.github.com/super-linter/super-linter/issues/7239">#7239</a>) (<a href="https://github.com/super-linter/super-linter/commit/29f17277db2147d8af291ae20e5c792b499052c7">29f1727</a>)</li> </ul> <h3>⬆️ Dependency updates</h3> <ul> <li><strong>bundler:</strong> bump rubocop in /dependencies in the rubocop group (<a href="https://redirect.github.com/super-linter/super-linter/issues/7188">#7188</a>) (<a href="https://github.com/super-linter/super-linter/commit/74b24446f8c7575d1b83edc5c975726d9e47416a">74b2444</a>)</li> <li><strong>bundler:</strong> bump rubocop-rails in /dependencies in the rubocop group (<a href="https://redirect.github.com/super-linter/super-linter/issues/7231">#7231</a>) (<a href="https://github.com/super-linter/super-linter/commit/dd55c528c7a818fc25840f934f8a8d8c8264bab7">dd55c52</a>)</li> <li><strong>bundler:</strong> bump the rubocop group in /dependencies with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7178">#7178</a>) (<a href="https://github.com/super-linter/super-linter/commit/3bdc91928162635ba67a148016a0ee29846087c6">3bdc919</a>)</li> <li><strong>bundler:</strong> bump the rubocop group in /dependencies with 4 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7202">#7202</a>) (<a href="https://github.com/super-linter/super-linter/commit/0e09528bdf1e450d83fab9ce2400225a11c7657d">0e09528</a>)</li> <li><strong>docker:</strong> bump python in the docker-base-images group (<a href="https://redirect.github.com/super-linter/super-linter/issues/7123">#7123</a>) (<a href="https://github.com/super-linter/super-linter/commit/41c3da1d09d0e5ec067ad65c9b855c6aeff225bc">41c3da1</a>)</li> <li><strong>docker:</strong> bump the docker group across 1 directory with 12 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7235">#7235</a>) (<a href="https://github.com/super-linter/super-linter/commit/b1cf27d548d8e772a89094d18b52c6d097b5ba08">b1cf27d</a>)</li> <li><strong>docker:</strong> bump the docker group across 1 directory with 6 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7148">#7148</a>) (<a href="https://github.com/super-linter/super-linter/commit/76149cff49dabb7f045e86f46e93f6767e2da34d">76149cf</a>)</li> <li><strong>docker:</strong> bump the docker group across 1 directory with 9 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7194">#7194</a>) (<a href="https://github.com/super-linter/super-linter/commit/45f731ea75a53496824bd31bb77c6ceab71a18ec">45f731e</a>)</li> <li><strong>npm:</strong> bump <code>@babel/eslint-parser</code> in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7183">#7183</a>) (<a href="https://github.com/super-linter/super-linter/commit/197eb8863a766dcfcf4c4ca670dc8560a9db85c6">197eb88</a>)</li> <li><strong>npm:</strong> bump <code>@typescript-eslint/eslint-plugin</code> (<a href="https://redirect.github.com/super-linter/super-linter/issues/7127">#7127</a>) (<a href="https://github.com/super-linter/super-linter/commit/2d57f06c64c521f2cfbbea3b8cc9c8f080fb473a">2d57f06</a>)</li> <li><strong>npm:</strong> bump <code>@typescript-eslint/eslint-plugin</code> (<a href="https://redirect.github.com/super-linter/super-linter/issues/7196">#7196</a>) (<a href="https://github.com/super-linter/super-linter/commit/033ea992a1aa5a0d4f868c2a3d401008ef218d9a">033ea99</a>)</li> <li><strong>npm:</strong> bump body-parser from 2.2.0 to 2.2.1 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7238">#7238</a>) (<a href="https://github.com/super-linter/super-linter/commit/30403f6aa43e234b7196dfd2eaa425b05294aa4c">30403f6</a>)</li> <li><strong>npm:</strong> bump eslint from 9.37.0 to 9.38.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7170">#7170</a>) (<a href="https://github.com/super-linter/super-linter/commit/b42af6f21b7bc5b827acd2c977b6047baad41ce9">b42af6f</a>)</li> <li><strong>npm:</strong> bump eslint from 9.38.0 to 9.39.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7191">#7191</a>) (<a href="https://github.com/super-linter/super-linter/commit/0cf22c89f925988556f38fcce929adde347f527b">0cf22c8</a>)</li> <li><strong>npm:</strong> bump eslint from 9.39.0 to 9.39.1 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7197">#7197</a>) (<a href="https://github.com/super-linter/super-linter/commit/513ae8ba519bb2c67e124d0fa1f03aff521babaa">513ae8b</a>)</li> <li><strong>npm:</strong> bump eslint-plugin-react-hooks (<a href="https://redirect.github.com/super-linter/super-linter/issues/7180">#7180</a>) (<a href="https://github.com/super-linter/super-linter/commit/61e42084aa3bc2771777fc56ca15f2b480117106">61e4208</a>)</li> <li><strong>npm:</strong> bump js-yaml from 3.14.1 to 3.14.2 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7210">#7210</a>) (<a href="https://github.com/super-linter/super-linter/commit/29faa987594b8d482545899275cd14bfc3cfe6bd">29faa98</a>)</li> <li><strong>npm:</strong> bump npm-groovy-lint from 15.2.1 to 15.2.2 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7130">#7130</a>) (<a href="https://github.com/super-linter/super-linter/commit/49138252344a9c051b5d4c4f12cc660d670415d8">4913825</a>)</li> <li><strong>npm:</strong> bump renovate from 41.142.0 to 41.146.5 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7134">#7134</a>) (<a href="https://github.com/super-linter/super-linter/commit/900b973697b89c3d89462a12bdd556c8dec5b4d0">900b973</a>)</li> <li><strong>npm:</strong> bump renovate from 41.151.1 to 41.161.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7182">#7182</a>) (<a href="https://github.com/super-linter/super-linter/commit/1d8c2a20d753278a958cf2a5f8c5b264bd1807c4">1d8c2a2</a>)</li> <li><strong>npm:</strong> bump renovate from 41.161.0 to 42.4.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7198">#7198</a>) (<a href="https://github.com/super-linter/super-linter/commit/0a4ed306a12b6a923c8c5ae80b798fd64314e193">0a4ed30</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/7145">#7145</a>) (<a href="https://github.com/super-linter/super-linter/commit/c137ca99f70bb902052d71b0191dd000fb2390a1">c137ca9</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7175">#7175</a>) (<a href="https://github.com/super-linter/super-linter/commit/f0b0ff5c9a26aac384cd4b016a099932ec2f96a9">f0b0ff5</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 3 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7146">#7146</a>) (<a href="https://github.com/super-linter/super-linter/commit/d4d3f168263fb5ae8b10cec7280d34954230f0a0">d4d3f16</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 3 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7195">#7195</a>) (<a href="https://github.com/super-linter/super-linter/commit/ad4f63c1683738277ceb276609c1acedf4f72ca9">ad4f63c</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 5 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7233">#7233</a>) (<a href="https://github.com/super-linter/super-linter/commit/5cadbf190ab223e8deab07f2415670e0aef342d9">5cadbf1</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 8 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7221">#7221</a>) (<a href="https://github.com/super-linter/super-linter/commit/3802c521f77bf81bda1453e9ba189a6e442a0dbb">3802c52</a>)</li> <li><strong>npm:</strong> bump the react group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7190">#7190</a>) (<a href="https://github.com/super-linter/super-linter/commit/d6c8078d417d100057ba28b372755aa78d9cbf0b">d6c8078</a>)</li> <li><strong>npm:</strong> bump the react group across 1 directory with 4 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7128">#7128</a>) (<a href="https://github.com/super-linter/super-linter/commit/40347029803087080f7cc79e7ca129c1e6b7cbd1">4034702</a>)</li> <li><strong>npm:</strong> bump the typescript group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7176">#7176</a>) (<a href="https://github.com/super-linter/super-linter/commit/39aba7679238de915382df7ecbe0194bc6677af9">39aba76</a>)</li> <li><strong>python:</strong> bump the pip group across 1 directory with 11 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7199">#7199</a>) (<a href="https://github.com/super-linter/super-linter/commit/07fbf76c2cf08a5c12b51f73329ae4ddc0c93d22">07fbf76</a>)</li> <li><strong>python:</strong> bump the pip group across 1 directory with 3 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7234">#7234</a>) (<a href="https://github.com/super-linter/super-linter/commit/c8bd6d308cdb7dc47ef439de8edff221afca95d2">c8bd6d3</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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.1...v8.3.0">8.3.0</a> (2025-11-28)</h2> <h3>🚀 Features</h3> <ul> <li>add ability to specify config files for nbqa tools (<a href="https://redirect.github.com/super-linter/super-linter/issues/7184">#7184</a>) (<a href="https://github.com/super-linter/super-linter/commit/b37c1c33a78f7cbf9bfa04609b83180319421bfc">b37c1c3</a>)</li> <li>lint dependabot, github actions with zizmor (<a href="https://redirect.github.com/super-linter/super-linter/issues/7241">#7241</a>) (<a href="https://github.com/super-linter/super-linter/commit/09306cdabe5c1afaedcab156e7a75b88575c829b">09306cd</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7137">#7137</a></li> <li>support rust 2024 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7211">#7211</a>) (<a href="https://github.com/super-linter/super-linter/commit/c15ee6dd7d559940b734579617c3637b9c007f6f">c15ee6d</a>), closes <a href="https://redirect.github.com/super-linter/super-linter/issues/7139">#7139</a></li> </ul> <h3>🐛 Bugfixes</h3> <ul> <li>parse json to extract terraform version (<a href="https://redirect.github.com/super-linter/super-linter/issues/7239">#7239</a>) (<a href="https://github.com/super-linter/super-linter/commit/29f17277db2147d8af291ae20e5c792b499052c7">29f1727</a>)</li> </ul> <h3>⬆️ Dependency updates</h3> <ul> <li><strong>bundler:</strong> bump rubocop in /dependencies in the rubocop group (<a href="https://redirect.github.com/super-linter/super-linter/issues/7188">#7188</a>) (<a href="https://github.com/super-linter/super-linter/commit/74b24446f8c7575d1b83edc5c975726d9e47416a">74b2444</a>)</li> <li><strong>bundler:</strong> bump rubocop-rails in /dependencies in the rubocop group (<a href="https://redirect.github.com/super-linter/super-linter/issues/7231">#7231</a>) (<a href="https://github.com/super-linter/super-linter/commit/dd55c528c7a818fc25840f934f8a8d8c8264bab7">dd55c52</a>)</li> <li><strong>bundler:</strong> bump the rubocop group in /dependencies with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7178">#7178</a>) (<a href="https://github.com/super-linter/super-linter/commit/3bdc91928162635ba67a148016a0ee29846087c6">3bdc919</a>)</li> <li><strong>bundler:</strong> bump the rubocop group in /dependencies with 4 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7202">#7202</a>) (<a href="https://github.com/super-linter/super-linter/commit/0e09528bdf1e450d83fab9ce2400225a11c7657d">0e09528</a>)</li> <li><strong>docker:</strong> bump python in the docker-base-images group (<a href="https://redirect.github.com/super-linter/super-linter/issues/7123">#7123</a>) (<a href="https://github.com/super-linter/super-linter/commit/41c3da1d09d0e5ec067ad65c9b855c6aeff225bc">41c3da1</a>)</li> <li><strong>docker:</strong> bump the docker group across 1 directory with 12 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7235">#7235</a>) (<a href="https://github.com/super-linter/super-linter/commit/b1cf27d548d8e772a89094d18b52c6d097b5ba08">b1cf27d</a>)</li> <li><strong>docker:</strong> bump the docker group across 1 directory with 6 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7148">#7148</a>) (<a href="https://github.com/super-linter/super-linter/commit/76149cff49dabb7f045e86f46e93f6767e2da34d">76149cf</a>)</li> <li><strong>docker:</strong> bump the docker group across 1 directory with 9 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7194">#7194</a>) (<a href="https://github.com/super-linter/super-linter/commit/45f731ea75a53496824bd31bb77c6ceab71a18ec">45f731e</a>)</li> <li><strong>npm:</strong> bump <code>@babel/eslint-parser</code> in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7183">#7183</a>) (<a href="https://github.com/super-linter/super-linter/commit/197eb8863a766dcfcf4c4ca670dc8560a9db85c6">197eb88</a>)</li> <li><strong>npm:</strong> bump <code>@typescript-eslint/eslint-plugin</code> (<a href="https://redirect.github.com/super-linter/super-linter/issues/7127">#7127</a>) (<a href="https://github.com/super-linter/super-linter/commit/2d57f06c64c521f2cfbbea3b8cc9c8f080fb473a">2d57f06</a>)</li> <li><strong>npm:</strong> bump <code>@typescript-eslint/eslint-plugin</code> (<a href="https://redirect.github.com/super-linter/super-linter/issues/7196">#7196</a>) (<a href="https://github.com/super-linter/super-linter/commit/033ea992a1aa5a0d4f868c2a3d401008ef218d9a">033ea99</a>)</li> <li><strong>npm:</strong> bump body-parser from 2.2.0 to 2.2.1 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7238">#7238</a>) (<a href="https://github.com/super-linter/super-linter/commit/30403f6aa43e234b7196dfd2eaa425b05294aa4c">30403f6</a>)</li> <li><strong>npm:</strong> bump eslint from 9.37.0 to 9.38.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7170">#7170</a>) (<a href="https://github.com/super-linter/super-linter/commit/b42af6f21b7bc5b827acd2c977b6047baad41ce9">b42af6f</a>)</li> <li><strong>npm:</strong> bump eslint from 9.38.0 to 9.39.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7191">#7191</a>) (<a href="https://github.com/super-linter/super-linter/commit/0cf22c89f925988556f38fcce929adde347f527b">0cf22c8</a>)</li> <li><strong>npm:</strong> bump eslint from 9.39.0 to 9.39.1 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7197">#7197</a>) (<a href="https://github.com/super-linter/super-linter/commit/513ae8ba519bb2c67e124d0fa1f03aff521babaa">513ae8b</a>)</li> <li><strong>npm:</strong> bump eslint-plugin-react-hooks (<a href="https://redirect.github.com/super-linter/super-linter/issues/7180">#7180</a>) (<a href="https://github.com/super-linter/super-linter/commit/61e42084aa3bc2771777fc56ca15f2b480117106">61e4208</a>)</li> <li><strong>npm:</strong> bump js-yaml from 3.14.1 to 3.14.2 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7210">#7210</a>) (<a href="https://github.com/super-linter/super-linter/commit/29faa987594b8d482545899275cd14bfc3cfe6bd">29faa98</a>)</li> <li><strong>npm:</strong> bump npm-groovy-lint from 15.2.1 to 15.2.2 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7130">#7130</a>) (<a href="https://github.com/super-linter/super-linter/commit/49138252344a9c051b5d4c4f12cc660d670415d8">4913825</a>)</li> <li><strong>npm:</strong> bump renovate from 41.142.0 to 41.146.5 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7134">#7134</a>) (<a href="https://github.com/super-linter/super-linter/commit/900b973697b89c3d89462a12bdd556c8dec5b4d0">900b973</a>)</li> <li><strong>npm:</strong> bump renovate from 41.151.1 to 41.161.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7182">#7182</a>) (<a href="https://github.com/super-linter/super-linter/commit/1d8c2a20d753278a958cf2a5f8c5b264bd1807c4">1d8c2a2</a>)</li> <li><strong>npm:</strong> bump renovate from 41.161.0 to 42.4.0 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7198">#7198</a>) (<a href="https://github.com/super-linter/super-linter/commit/0a4ed306a12b6a923c8c5ae80b798fd64314e193">0a4ed30</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/7145">#7145</a>) (<a href="https://github.com/super-linter/super-linter/commit/c137ca99f70bb902052d71b0191dd000fb2390a1">c137ca9</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7175">#7175</a>) (<a href="https://github.com/super-linter/super-linter/commit/f0b0ff5c9a26aac384cd4b016a099932ec2f96a9">f0b0ff5</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 3 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7146">#7146</a>) (<a href="https://github.com/super-linter/super-linter/commit/d4d3f168263fb5ae8b10cec7280d34954230f0a0">d4d3f16</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 3 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7195">#7195</a>) (<a href="https://github.com/super-linter/super-linter/commit/ad4f63c1683738277ceb276609c1acedf4f72ca9">ad4f63c</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 5 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7233">#7233</a>) (<a href="https://github.com/super-linter/super-linter/commit/5cadbf190ab223e8deab07f2415670e0aef342d9">5cadbf1</a>)</li> <li><strong>npm:</strong> bump the npm group across 1 directory with 8 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7221">#7221</a>) (<a href="https://github.com/super-linter/super-linter/commit/3802c521f77bf81bda1453e9ba189a6e442a0dbb">3802c52</a>)</li> <li><strong>npm:</strong> bump the react group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7190">#7190</a>) (<a href="https://github.com/super-linter/super-linter/commit/d6c8078d417d100057ba28b372755aa78d9cbf0b">d6c8078</a>)</li> <li><strong>npm:</strong> bump the react group across 1 directory with 4 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7128">#7128</a>) (<a href="https://github.com/super-linter/super-linter/commit/40347029803087080f7cc79e7ca129c1e6b7cbd1">4034702</a>)</li> <li><strong>npm:</strong> bump the typescript group across 1 directory with 2 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7176">#7176</a>) (<a href="https://github.com/super-linter/super-linter/commit/39aba7679238de915382df7ecbe0194bc6677af9">39aba76</a>)</li> <li><strong>python:</strong> bump the pip group across 1 directory with 11 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7199">#7199</a>) (<a href="https://github.com/super-linter/super-linter/commit/07fbf76c2cf08a5c12b51f73329ae4ddc0c93d22">07fbf76</a>)</li> <li><strong>python:</strong> bump the pip group across 1 directory with 3 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7234">#7234</a>) (<a href="https://github.com/super-linter/super-linter/commit/c8bd6d308cdb7dc47ef439de8edff221afca95d2">c8bd6d3</a>)</li> <li><strong>python:</strong> bump the pip group across 1 directory with 4 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7219">#7219</a>) (<a href="https://github.com/super-linter/super-linter/commit/91361a34fd58bc5dc83b52e0bd25114a06223fab">91361a3</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/super-linter/super-linter/commit/502f4fe48a81a392756e173e39a861f8c8efe056"><code>502f4fe</code></a> chore(main): release 8.3.0 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7149">#7149</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/13997378fdbc9d06dd8791ab2ff8985d27810d58"><code>1399737</code></a> chore: update google-java-format to 1.29.0 (<a href="https://redirect.github.com/super-linter/super-linter/issues/7104">#7104</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/b1cf27d548d8e772a89094d18b52c6d097b5ba08"><code>b1cf27d</code></a> deps(docker): bump the docker group across 1 directory with 12 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7235">#7235</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/09306cdabe5c1afaedcab156e7a75b88575c829b"><code>09306cd</code></a> feat: lint dependabot, github actions with zizmor (<a href="https://redirect.github.com/super-linter/super-linter/issues/7241">#7241</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/5aa81e2b92d9cec28bdd7183b8197383aace3203"><code>5aa81e2</code></a> chore: set devcontainer name (<a href="https://redirect.github.com/super-linter/super-linter/issues/7240">#7240</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/29f17277db2147d8af291ae20e5c792b499052c7"><code>29f1727</code></a> fix: parse json to extract terraform version (<a href="https://redirect.github.com/super-linter/super-linter/issues/7239">#7239</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/30403f6aa43e234b7196dfd2eaa425b05294aa4c"><code>30403f6</code></a> deps(npm): bump body-parser from 2.2.0 to 2.2.1 in /dependencies (<a href="https://redirect.github.com/super-linter/super-linter/issues/7238">#7238</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/c8bd6d308cdb7dc47ef439de8edff221afca95d2"><code>c8bd6d3</code></a> deps(python): bump the pip group across 1 directory with 3 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7234">#7234</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/5cadbf190ab223e8deab07f2415670e0aef342d9"><code>5cadbf1</code></a> deps(npm): bump the npm group across 1 directory with 5 updates (<a href="https://redirect.github.com/super-linter/super-linter/issues/7233">#7233</a>)</li> <li><a href="https://github.com/super-linter/super-linter/commit/f40c1749ad03cda5cbb70dd78fd74c9f2a8209a6"><code>f40c174</code></a> ci(github-actions): bump actions/checkout in the dev-ci-tools group (<a href="https://redirect.github.com/super-linter/super-linter/issues/7232">#7232</a>)</li> <li>Additional commits viewable in <a href="https://github.com/super-linter/super-linter/compare/v8.2.1...v8.3.0">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 [crate-ci/typos](https://github.com/crate-ci/typos) from 1.39.2 to 1.40.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/crate-ci/typos/releases">crate-ci/typos's releases</a>.</em></p> <blockquote> <h2>v1.40.0</h2> <h2>[1.40.0] - 2025-11-26</h2> <h3>Features</h3> <ul> <li>Updated the dictionary with the <a href="https://redirect.github.com/crate-ci/typos/issues/1405">November 2025</a> changes</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's changelog</a>.</em></p> <blockquote> <h2>[1.40.0] - 2025-11-26</h2> <h3>Features</h3> <ul> <li>Updated the dictionary with the <a href="https://redirect.github.com/crate-ci/typos/issues/1405">November 2025</a> changes</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/crate-ci/typos/commit/2d0ce569feab1f8752f1dde43cc2f2aa53236e06"><code>2d0ce56</code></a> chore: Release</li> <li><a href="https://github.com/crate-ci/typos/commit/efbd900f8db9952781b6bd1ad83baa38ebd153e3"><code>efbd900</code></a> chore: Release</li> <li><a href="https://github.com/crate-ci/typos/commit/863fd15db8bf16bfe9117ec1a83ea7b6e802e9f3"><code>863fd15</code></a> docs: Update changelog</li> <li><a href="https://github.com/crate-ci/typos/commit/9a27b16791dd73549457a07f247bc4920f787919"><code>9a27b16</code></a> Merge pull request <a href="https://redirect.github.com/crate-ci/typos/issues/1432">#1432</a> from epage/nov</li> <li><a href="https://github.com/crate-ci/typos/commit/3dbd9d4eacab7f22586ea581e4d403c3ca9dbbb7"><code>3dbd9d4</code></a> feat(dict): November additions</li> <li><a href="https://github.com/crate-ci/typos/commit/a1a16c7b7c25d1c27cc750525aada8b9ae68b716"><code>a1a16c7</code></a> Merge pull request <a href="https://redirect.github.com/crate-ci/typos/issues/1427">#1427</a> from deining/bump-github-action</li> <li><a href="https://github.com/crate-ci/typos/commit/cb8d2e78ff23c82fca05340ed256b04513d022b9"><code>cb8d2e7</code></a> docs: Bump GitHub checkout action in 'github-action.md'</li> <li><a href="https://github.com/crate-ci/typos/commit/9f99fb8dfe87b8a3441863fb2e5d5da88a2aa9a2"><code>9f99fb8</code></a> docs(ref): Clarify extend-words / extend-identifiers</li> <li>See full diff in <a href="https://github.com/crate-ci/typos/compare/v1.39.2...v1.40.0">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>
Updates the requirements on [criterion](https://github.com/criterion-rs/criterion.rs) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md">criterion's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/criterion-rs/criterion.rs/compare/criterion-v0.7.0...criterion-v0.8.0">0.8.0</a> - 2025-11-29</h2> <h3>BREAKING</h3> <ul> <li>Drop async-std support</li> </ul> <h3>Changed</h3> <ul> <li>Bump MSRV to 1.86, stable to 1.91.1</li> </ul> <h3>Added</h3> <ul> <li>Add ability to plot throughput on summary page.</li> <li>Add support for reporting throughput in elements and bytes - <code>Throughput::ElementsAndBytes</code> allows the text summary to report throughput in both units simultaneously.</li> <li>Add alloca-based memory layout randomisation to mitigate memory effects on measurements.</li> <li>Add doc comment to benchmark runner in criterion_group macro (removes linter warnings)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix plotting NaN bug</li> </ul> <h3>Other</h3> <ul> <li>Remove Master API Docs links temporarily while we restore the docs publishing.</li> </ul> <h2>[0.7.0] - 2025-07-25</h2> <ul> <li>Bump version of criterion-plot to align dependencies.</li> </ul> <h2>[0.6.0] - 2025-05-17</h2> <h3>Changed</h3> <ul> <li>MSRV bumped to 1.80</li> <li>The <code>real_blackbox</code> feature no longer has any impact. Criterion always uses <code>std::hint::black_box()</code> now. Users of <code>criterion::black_box()</code> should switch to <code>std::hint::black_box()</code>.</li> <li><code>clap</code> dependency unpinned.</li> </ul> <h3>Fixed</h3> <ul> <li>gnuplot version is now correctly detected when using certain Windows binaries/configurations that used to fail</li> </ul> <h3>Added</h3> <ul> <li>Async benchmarking with Tokio may be done via a <code>tokio::runtime::Handle</code>, not only a <code>tokio::runtime::Runtime</code></li> </ul> <h2>[0.5.1] - 2023-05-26</h2> <h3>Fixed</h3> <ul> <li>Quick mode (--quick) no longer crashes with measured times over 5 seconds when --noplot is not active</li> </ul> <h2>[0.5.0] - 2023-05-23</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/criterion-rs/criterion.rs/commit/b49ade728c064f49cb2a70b0368658a15cf21833"><code>b49ade7</code></a> chore: release v0.8.0</li> <li>See full diff in <a href="https://github.com/criterion-rs/criterion.rs/compare/criterion-plot-v0.7.0...criterion-v0.8.0">compare view</a></li> </ul> </details> <br /> 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 To clear the `PointerButtonState`, `clear` is called on each of its individual fields holding the button state data. Instead add a `clear` method to `PointerButtonState`. ## Solution Add a `clear` method to `PointerButtonState` to clear its data. --------- Co-authored-by: Kevin Chen <chen.kevin.f@gmail.com>
# Objective
Fix crash when a window is closed on current main
<details>
<summary>Crash log</summary>
```
❯ RUST_BACKTRACE=full cargo run --example 3d_scene -F dev
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.17s
Running `target/debug/examples/3d_scene`
2025-11-29T21:39:06.551816Z INFO bevy_diagnostic::system_information_diagnostics_plugin::internal: SystemInfo { os: "Linux (Arch Linux rolling)", kernel: "6.17.9-arch1-1", cpu: "AMD Ryzen 9 9950X 16-Core Processor", core_count: "16", memory: "186.4 GiB" }
2025-11-29T21:39:06.589438Z INFO bevy_render::renderer: AdapterInfo { name: "NVIDIA GeForce RTX 5080", vendor: 4318, device: 11266, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "580.105.08", backend: Vulkan }
2025-11-29T21:39:06.953148Z INFO bevy_render::batching::gpu_preprocessing: GPU preprocessing is fully supported on this device.
2025-11-29T21:39:06.959263Z INFO bevy_winit::system: Creating new window 3d_scene (0v0)
2025-11-29T21:39:09.503214Z INFO bevy_window::system: No windows are open, exiting
2025-11-29T21:39:09.504687Z INFO bevy_winit::system: Closing window 0v0
2025-11-29T21:39:09.510808Z ERROR wgpu::backend::wgpu_core: Handling wgpu errors as fatal by default
thread '<unnamed>' (664835) panicked at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-26.0.1/src/backend/wgpu_core.rs:1852:22:
wgpu error: Validation Error
Caused by:
In Queue::submit
In a pass parameter
Texture with '<Surface Texture>' label has been destroyed
stack backtrace:
0: 0x557069cd5e42 - std[cbf56a46dac989f5]::backtrace_rs::backtrace::libunwind::trace
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
1: 0x557069cd5e42 - std[cbf56a46dac989f5]::backtrace_rs::backtrace::trace_unsynchronized::<std[cbf56a46dac989f5]::sys::backtrace::_print_fmt::{closure#1}>
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
2: 0x557069cd5e42 - std[cbf56a46dac989f5]::sys::backtrace::_print_fmt
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/sys/backtrace.rs:68:9
3: 0x557069cd5e42 - <<std[cbf56a46dac989f5]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a3424aac13c77cf6]::fmt::Display>::fmt
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/sys/backtrace.rs:38:26
4: 0x557069cf05e7 - <core[a3424aac13c77cf6]::fmt::rt::Argument>::fmt
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/core/src/fmt/rt.rs:152:76
5: 0x557069cf05e7 - core[a3424aac13c77cf6]::fmt::write
6: 0x557069cdc5d6 - std[cbf56a46dac989f5]::io::default_write_fmt::<std[cbf56a46dac989f5]::sys::stdio::unix::Stderr>
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/io/mod.rs:639:11
7: 0x557069cdc5d6 - <std[cbf56a46dac989f5]::sys::stdio::unix::Stderr as std[cbf56a46dac989f5]::io::Write>::write_fmt
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/io/mod.rs:1994:13
8: 0x557069cb255a - <std[cbf56a46dac989f5]::sys::backtrace::BacktraceLock>::print
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/sys/backtrace.rs:41:9
9: 0x557069cb255a - std[cbf56a46dac989f5]::panicking::default_hook::{closure#0}
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/panicking.rs:292:27
10: 0x557069cce7e1 - std[cbf56a46dac989f5]::panicking::default_hook
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/panicking.rs:319:9
11: 0x5570696cd6b3 - <alloc[9fa3fef380221c31]::boxed::Box<dyn for<'a, 'b> core[a3424aac13c77cf6]::ops::function::Fn<(&'a std[cbf56a46dac989f5]::panic::PanicHookInfo<'b>,), Output = ()> + core[a3424aac13c77cf6]::marker::Send + core[a3424aac13c77cf6]::marker::Sync> as core[a3424aac13c77cf6]::ops::function::Fn<(&std[cbf56a46dac989f5]::panic::PanicHookInfo,)>>::call
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2220:9
12: 0x5570696b9081 - bevy_ecs[ae55bfe1c74e77a3]::error::bevy_error::bevy_error_panic_hook::<alloc[9fa3fef380221c31]::boxed::Box<dyn for<'a, 'b> core[a3424aac13c77cf6]::ops::function::Fn<(&'a std[cbf56a46dac989f5]::panic::PanicHookInfo<'b>,), Output = ()> + core[a3424aac13c77cf6]::marker::Send + core[a3424aac13c77cf6]::marker::Sync>>::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/error/bevy_error.rs:162:9
13: 0x557069ccea82 - <alloc[9fa3fef380221c31]::boxed::Box<dyn for<'a, 'b> core[a3424aac13c77cf6]::ops::function::Fn<(&'a std[cbf56a46dac989f5]::panic::PanicHookInfo<'b>,), Output = ()> + core[a3424aac13c77cf6]::marker::Send + core[a3424aac13c77cf6]::marker::Sync> as core[a3424aac13c77cf6]::ops::function::Fn<(&std[cbf56a46dac989f5]::panic::PanicHookInfo,)>>::call
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/alloc/src/boxed.rs:2220:9
14: 0x557069ccea82 - std[cbf56a46dac989f5]::panicking::panic_with_hook
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/panicking.rs:833:13
15: 0x557069cb2618 - std[cbf56a46dac989f5]::panicking::panic_handler::{closure#0}
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/panicking.rs:698:13
16: 0x557069ca9779 - std[cbf56a46dac989f5]::sys::backtrace::__rust_end_short_backtrace::<std[cbf56a46dac989f5]::panicking::panic_handler::{closure#0}, !>
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/sys/backtrace.rs:176:18
17: 0x557069cb37cd - __rustc[f3f8441e4970532f]::rust_begin_unwind
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/panicking.rs:689:5
18: 0x557069cf0d5c - core[a3424aac13c77cf6]::panicking::panic_fmt
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/core/src/panicking.rs:80:14
19: 0x5570675ffab5 - wgpu[932fed8fce9d4b4b]::backend::wgpu_core::default_error_handler
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-26.0.1/src/backend/wgpu_core.rs:659:5
20: 0x5570675ff6e5 - <wgpu[932fed8fce9d4b4b]::backend::wgpu_core::ErrorSinkRaw>::handle_error
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-26.0.1/src/backend/wgpu_core.rs:643:21
21: 0x5570675ff3f4 - <wgpu[932fed8fce9d4b4b]::backend::wgpu_core::ContextWgpuCore>::handle_error_inner
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-26.0.1/src/backend/wgpu_core.rs:298:14
22: 0x5570675fcda3 - <wgpu[932fed8fce9d4b4b]::backend::wgpu_core::ContextWgpuCore>::handle_error_nolabel::<wgpu_core[2f77c8d0c0f83b61]::device::queue::QueueSubmitError>
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-26.0.1/src/backend/wgpu_core.rs:323:14
23: 0x55706760ed17 - <wgpu[932fed8fce9d4b4b]::backend::wgpu_core::CoreQueue as wgpu[932fed8fce9d4b4b]::dispatch::QueueInterface>::submit
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-26.0.1/src/backend/wgpu_core.rs:1852:22
24: 0x5570672eef2a - <wgpu[932fed8fce9d4b4b]::api::queue::Queue>::submit::<alloc[9fa3fef380221c31]::vec::Vec<wgpu[932fed8fce9d4b4b]::api::command_buffer::CommandBuffer>>
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-26.0.1/src/api/queue.rs:253:32
25: 0x557066f4965c - <bevy_render[cbe98d17828001b5]::renderer::graph_runner::RenderGraphRunner>::run::<bevy_render[cbe98d17828001b5]::renderer::render_system::{closure#1}>
at /home/ssingh/Projects/bevy/crates/bevy_render/src/renderer/graph_runner.rs:87:19
26: 0x5570670a05ad - bevy_render[cbe98d17828001b5]::renderer::render_system
at /home/ssingh/Projects/bevy/crates/bevy_render/src/renderer/mod.rs:48:15
27: 0x55706744d021 - <bevy_render[cbe98d17828001b5]::renderer::render_system as core[a3424aac13c77cf6]::ops::function::FnMut<(&mut bevy_ecs[ae55bfe1c74e77a3]::world::World, &mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>)>>::call_mut
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:166:5
28: 0x5570670ad864 - <&mut bevy_render[cbe98d17828001b5]::renderer::render_system as core[a3424aac13c77cf6]::ops::function::FnMut<(&mut bevy_ecs[ae55bfe1c74e77a3]::world::World, &mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>)>>::call_mut
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:298:21
29: 0x55706735dc8e - <_ as bevy_ecs[ae55bfe1c74e77a3]::system::exclusive_function_system::ExclusiveSystemParamFunction<fn(_) -> _>>::run::call_inner::<(), &mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>, &mut bevy_render[cbe98d17828001b5]::renderer::render_system>
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/system/exclusive_function_system.rs:270:21
30: 0x5570670ad95e - <bevy_render[cbe98d17828001b5]::renderer::render_system as bevy_ecs[ae55bfe1c74e77a3]::system::exclusive_function_system::ExclusiveSystemParamFunction<fn(&mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>)>>::run
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/system/exclusive_function_system.rs:273:17
31: 0x55706735e0ab - <bevy_ecs[ae55bfe1c74e77a3]::system::exclusive_function_system::ExclusiveFunctionSystem<fn(&mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>), (), bevy_render[cbe98d17828001b5]::renderer::render_system> as bevy_ecs[ae55bfe1c74e77a3]::system::system::System>::run_unsafe::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/system/exclusive_function_system.rs:135:33
32: 0x55706702ac65 - <bevy_ecs[ae55bfe1c74e77a3]::world::World>::last_change_tick_scope::<core[a3424aac13c77cf6]::result::Result<(), bevy_ecs[ae55bfe1c74e77a3]::system::system::RunSystemError>, <bevy_ecs[ae55bfe1c74e77a3]::system::exclusive_function_system::ExclusiveFunctionSystem<fn(&mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>), (), bevy_render[cbe98d17828001b5]::renderer::render_system> as bevy_ecs[ae55bfe1c74e77a3]::system::system::System>::run_unsafe::{closure#0}>
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/world/mod.rs:3070:9
33: 0x55706735eb0a - <bevy_ecs[ae55bfe1c74e77a3]::system::exclusive_function_system::ExclusiveFunctionSystem<fn(&mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>), (), bevy_render[cbe98d17828001b5]::renderer::render_system> as bevy_ecs[ae55bfe1c74e77a3]::system::system::System>::run_unsafe
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/system/exclusive_function_system.rs:113:15
34: 0x55706735f7ab - <bevy_ecs[ae55bfe1c74e77a3]::system::exclusive_function_system::ExclusiveFunctionSystem<fn(&mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>), (), bevy_render[cbe98d17828001b5]::renderer::render_system> as bevy_ecs[ae55bfe1c74e77a3]::system::system::System>::run_without_applying_deferred
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/system/system.rs:138:23
35: 0x55706735f806 - <bevy_ecs[ae55bfe1c74e77a3]::system::exclusive_function_system::ExclusiveFunctionSystem<fn(&mut bevy_ecs[ae55bfe1c74e77a3]::system::function_system::SystemState<bevy_ecs[ae55bfe1c74e77a3]::system::query::Query<(&bevy_render[cbe98d17828001b5]::view::ViewTarget, &bevy_render[cbe98d17828001b5]::camera::ExtractedCamera)>>), (), bevy_render[cbe98d17828001b5]::renderer::render_system> as bevy_ecs[ae55bfe1c74e77a3]::system::system::System>::run
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/system/system.rs:119:24
36: 0x55706988d090 - bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::__rust_begin_short_backtrace::run
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/schedule/executor/mod.rs:288:29
37: 0x5570697be94d - <bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/schedule/executor/multi_threaded.rs:742:25
38: 0x5570697254f9 - <<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}::{closure#0} as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
39: 0x55706977f259 - <core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}::{closure#0}> as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
40: 0x5570697c3253 - std[cbf56a46dac989f5]::panicking::catch_unwind::do_call::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}::{closure#0}>, ()>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
41: 0x557069887a9b - __rust_try
42: 0x557069886fae - std[cbf56a46dac989f5]::panicking::catch_unwind::<(), core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}::{closure#0}>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
43: 0x557069886fae - std[cbf56a46dac989f5]::panic::catch_unwind::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}::{closure#0}>, ()>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
44: 0x5570697bf233 - <bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/schedule/executor/multi_threaded.rs:740:27
45: 0x55706977f642 - <core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}> as core[a3424aac13c77cf6]::future::future::Future>::poll
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:299:9
46: 0x557069765c04 - <futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:653:53
47: 0x55706977f4f4 - <core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}> as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
48: 0x5570697c374d - std[cbf56a46dac989f5]::panicking::catch_unwind::do_call::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}>, core[a3424aac13c77cf6]::task::poll::Poll<()>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
49: 0x557069887a9b - __rust_try
50: 0x557069887a24 - std[cbf56a46dac989f5]::panicking::catch_unwind::<core[a3424aac13c77cf6]::task::poll::Poll<()>, core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
51: 0x557069887a24 - std[cbf56a46dac989f5]::panic::catch_unwind::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}>, core[a3424aac13c77cf6]::task::poll::Poll<()>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
52: 0x557069766ae8 - <futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>> as core[a3424aac13c77cf6]::future::future::Future>::poll
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:653:9
53: 0x557069892db3 - <async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}> as core[a3424aac13c77cf6]::future::future::Future>::poll
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-executor-1.13.2/src/lib.rs:1179:31
54: 0x557069896c98 - <async_task[6d75e66224110732]::raw::RawTask<async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}>, core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, <async_executor[9f76b1279a3f5047]::Executor>::schedule::{closure#0}, ()>>::run::{closure#1}
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-task-4.7.1/src/raw.rs:550:21
55: 0x557069725734 - <<async_task[6d75e66224110732]::raw::RawTask<async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}>, core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, <async_executor[9f76b1279a3f5047]::Executor>::schedule::{closure#0}, ()>>::run::{closure#1} as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
56: 0x55706977f2db - <core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<async_task[6d75e66224110732]::raw::RawTask<async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}>, core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, <async_executor[9f76b1279a3f5047]::Executor>::schedule::{closure#0}, ()>>::run::{closure#1}> as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
57: 0x5570697c336e - std[cbf56a46dac989f5]::panicking::catch_unwind::do_call::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<async_task[6d75e66224110732]::raw::RawTask<async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}>, core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, <async_executor[9f76b1279a3f5047]::Executor>::schedule::{closure#0}, ()>>::run::{closure#1}>, core[a3424aac13c77cf6]::task::poll::Poll<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
58: 0x557069887a9b - __rust_try
59: 0x5570698871c4 - std[cbf56a46dac989f5]::panicking::catch_unwind::<core[a3424aac13c77cf6]::task::poll::Poll<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>>, core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<async_task[6d75e66224110732]::raw::RawTask<async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}>, core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, <async_executor[9f76b1279a3f5047]::Executor>::schedule::{closure#0}, ()>>::run::{closure#1}>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
60: 0x5570698871c4 - std[cbf56a46dac989f5]::panic::catch_unwind::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<async_task[6d75e66224110732]::raw::RawTask<async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}>, core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, <async_executor[9f76b1279a3f5047]::Executor>::schedule::{closure#0}, ()>>::run::{closure#1}>, core[a3424aac13c77cf6]::task::poll::Poll<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
61: 0x55706989b7cd - <async_task[6d75e66224110732]::raw::RawTask<async_executor[9f76b1279a3f5047]::AsyncCallOnDrop<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>, <async_executor[9f76b1279a3f5047]::Executor>::spawn_inner<core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::ExecutorState>::spawn_exclusive_system_task::{closure#1}>>>::{closure#0}>, core[a3424aac13c77cf6]::result::Result<(), alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::any::Any + core[a3424aac13c77cf6]::marker::Send>>, <async_executor[9f76b1279a3f5047]::Executor>::schedule::{closure#0}, ()>>::run
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-task-4.7.1/src/raw.rs:549:23
62: 0x557069924fd2 - <async_task[6d75e66224110732]::runnable::Runnable>::run
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-task-4.7.1/src/runnable.rs:781:18
63: 0x55706990a9bb - <async_executor[9f76b1279a3f5047]::State>::tick::{closure#0}
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-executor-1.13.2/src/lib.rs:733:18
64: 0x55706990a4b5 - <async_executor[9f76b1279a3f5047]::Executor>::tick::{closure#0}
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-executor-1.13.2/src/lib.rs:324:29
65: 0x5570697c9dec - <bevy_tasks[be92084dce5eafd]::thread_executor::ThreadExecutorTicker>::tick::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/thread_executor.rs:105:39
66: 0x55706975e735 - <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope::<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/task_pool.rs:542:45
67: 0x55706977f583 - <core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}> as core[a3424aac13c77cf6]::future::future::Future>::poll
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:299:9
68: 0x557069765b84 - <futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:653:53
69: 0x55706977f474 - <core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}> as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
70: 0x5570697c3647 - std[cbf56a46dac989f5]::panicking::catch_unwind::do_call::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}>, core[a3424aac13c77cf6]::task::poll::Poll<!>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
71: 0x557069887a9b - __rust_try
72: 0x5570698877da - std[cbf56a46dac989f5]::panicking::catch_unwind::<core[a3424aac13c77cf6]::task::poll::Poll<!>, core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
73: 0x5570698877da - std[cbf56a46dac989f5]::panic::catch_unwind::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>> as core[a3424aac13c77cf6]::future::future::Future>::poll::{closure#0}>, core[a3424aac13c77cf6]::task::poll::Poll<!>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
74: 0x5570697667ea - <futures_lite[d9f7489fbab33684]::future::CatchUnwind<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0}>> as core[a3424aac13c77cf6]::future::future::Future>::poll
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:653:9
75: 0x55706975d6e3 - <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope::<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/task_pool.rs:545:77
76: 0x557069766039 - <futures_lite[d9f7489fbab33684]::future::Or<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}, <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}> as core[a3424aac13c77cf6]::future::future::Future>::poll
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:454:46
77: 0x55706975c15d - <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::execute_scope::<(), <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}::{closure#0}>::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/task_pool.rs:548:41
78: 0x55706975d1e7 - <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner::<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/task_pool.rs:459:85
79: 0x55706976577a - futures_lite[d9f7489fbab33684]::future::block_on::<alloc[9fa3fef380221c31]::vec::Vec<()>, <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}>::{closure#0}
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:96:35
80: 0x5570698fe6e4 - <std[cbf56a46dac989f5]::thread::local::LocalKey<core[a3424aac13c77cf6]::cell::RefCell<(parking[9edd71b36109867e]::Parker, core[a3424aac13c77cf6]::task::wake::Waker)>>>::try_with::<futures_lite[d9f7489fbab33684]::future::block_on<alloc[9fa3fef380221c31]::vec::Vec<()>, <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}>::{closure#0}, alloc[9fa3fef380221c31]::vec::Vec<()>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:508:12
81: 0x5570698fe563 - <std[cbf56a46dac989f5]::thread::local::LocalKey<core[a3424aac13c77cf6]::cell::RefCell<(parking[9edd71b36109867e]::Parker, core[a3424aac13c77cf6]::task::wake::Waker)>>>::with::<futures_lite[d9f7489fbab33684]::future::block_on<alloc[9fa3fef380221c31]::vec::Vec<()>, <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}>::{closure#0}, alloc[9fa3fef380221c31]::vec::Vec<()>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:472:20
82: 0x5570697654dd - futures_lite[d9f7489fbab33684]::future::block_on::<alloc[9fa3fef380221c31]::vec::Vec<()>, <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}>
at /home/ssingh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-lite-2.6.1/src/future.rs:75:11
83: 0x55706975b709 - <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor_inner::<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/task_pool.rs:413:13
84: 0x55706975c349 - <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor::<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/task_pool.rs:343:22
85: 0x5570698fe407 - <std[cbf56a46dac989f5]::thread::local::LocalKey<alloc[9fa3fef380221c31]::sync::Arc<bevy_tasks[be92084dce5eafd]::thread_executor::ThreadExecutor>>>::try_with::<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}, alloc[9fa3fef380221c31]::vec::Vec<()>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:508:12
86: 0x5570698fe29d - <std[cbf56a46dac989f5]::thread::local::LocalKey<alloc[9fa3fef380221c31]::sync::Arc<bevy_tasks[be92084dce5eafd]::thread_executor::ThreadExecutor>>>::with::<<bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>::{closure#0}, alloc[9fa3fef380221c31]::vec::Vec<()>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:472:20
87: 0x55706975b42c - <bevy_tasks[be92084dce5eafd]::task_pool::TaskPool>::scope_with_executor::<<bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run::{closure#1}, ()>
at /home/ssingh/Projects/bevy/crates/bevy_tasks/src/task_pool.rs:339:31
88: 0x5570698d5d34 - <bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::multi_threaded::MultiThreadedExecutor as bevy_ecs[ae55bfe1c74e77a3]::schedule::executor::SystemExecutor>::run
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/schedule/executor/multi_threaded.rs:279:57
89: 0x55706980e792 - <bevy_ecs[ae55bfe1c74e77a3]::schedule::schedule::Schedule>::run
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/schedule/schedule.rs:540:14
90: 0x5570696aca61 - <bevy_ecs[ae55bfe1c74e77a3]::world::World>::run_schedule::<bevy_ecs[ae55bfe1c74e77a3]::intern::Interned<dyn bevy_ecs[ae55bfe1c74e77a3]::schedule::set::ScheduleLabel>>::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/world/mod.rs:3673:57
91: 0x5570696abc76 - <bevy_ecs[ae55bfe1c74e77a3]::world::World>::try_schedule_scope::<(), bevy_ecs[ae55bfe1c74e77a3]::intern::Interned<dyn bevy_ecs[ae55bfe1c74e77a3]::schedule::set::ScheduleLabel>, <bevy_ecs[ae55bfe1c74e77a3]::world::World>::run_schedule<bevy_ecs[ae55bfe1c74e77a3]::intern::Interned<dyn bevy_ecs[ae55bfe1c74e77a3]::schedule::set::ScheduleLabel>>::{closure#0}>
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/world/mod.rs:3591:21
92: 0x5570696abad9 - <bevy_ecs[ae55bfe1c74e77a3]::world::World>::schedule_scope::<(), bevy_ecs[ae55bfe1c74e77a3]::intern::Interned<dyn bevy_ecs[ae55bfe1c74e77a3]::schedule::set::ScheduleLabel>, <bevy_ecs[ae55bfe1c74e77a3]::world::World>::run_schedule<bevy_ecs[ae55bfe1c74e77a3]::intern::Interned<dyn bevy_ecs[ae55bfe1c74e77a3]::schedule::set::ScheduleLabel>>::{closure#0}>
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/world/mod.rs:3643:14
93: 0x5570696abab8 - <bevy_ecs[ae55bfe1c74e77a3]::world::World>::run_schedule::<bevy_ecs[ae55bfe1c74e77a3]::intern::Interned<dyn bevy_ecs[ae55bfe1c74e77a3]::schedule::set::ScheduleLabel>>
at /home/ssingh/Projects/bevy/crates/bevy_ecs/src/world/mod.rs:3673:14
94: 0x5570696a8f93 - <bevy_app[8596c61a6a25de94]::sub_app::SubApp>::run_default_schedule
at /home/ssingh/Projects/bevy/crates/bevy_app/src/sub_app.rs:141:24
95: 0x5570696a91e4 - <bevy_app[8596c61a6a25de94]::sub_app::SubApp>::update
at /home/ssingh/Projects/bevy/crates/bevy_app/src/sub_app.rs:147:14
96: 0x55706707b40e - <bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}
at /home/ssingh/Projects/bevy/crates/bevy_render/src/pipelined_rendering.rs:168:32
97: 0x55706744e516 - std[cbf56a46dac989f5]::sys::backtrace::__rust_begin_short_backtrace::<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:160:18
98: 0x5570670439c0 - <std[cbf56a46dac989f5]::thread::Builder>::spawn_unchecked_::<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>::{closure#1}::{closure#0}
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:562:17
99: 0x557066f925c1 - <core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<std[cbf56a46dac989f5]::thread::Builder>::spawn_unchecked_<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>::{closure#1}::{closure#0}> as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
100: 0x55706703e4db - std[cbf56a46dac989f5]::panicking::catch_unwind::do_call::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<std[cbf56a46dac989f5]::thread::Builder>::spawn_unchecked_<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:581:40
101: 0x557067043a4b - __rust_try
102: 0x5570670435ea - std[cbf56a46dac989f5]::panicking::catch_unwind::<(), core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<std[cbf56a46dac989f5]::thread::Builder>::spawn_unchecked_<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>::{closure#1}::{closure#0}>>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
103: 0x5570670435ea - std[cbf56a46dac989f5]::panic::catch_unwind::<core[a3424aac13c77cf6]::panic::unwind_safe::AssertUnwindSafe<<std[cbf56a46dac989f5]::thread::Builder>::spawn_unchecked_<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
104: 0x5570670435ea - <std[cbf56a46dac989f5]::thread::Builder>::spawn_unchecked_::<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>::{closure#1}
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:560:30
105: 0x55706742811f - <<std[cbf56a46dac989f5]::thread::Builder>::spawn_unchecked_<<bevy_render[cbe98d17828001b5]::pipelined_rendering::PipelinedRenderingPlugin as bevy_app[8596c61a6a25de94]::plugin::Plugin>::cleanup::{closure#0}, ()>::{closure#1} as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
at /home/ssingh/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
106: 0x557069cd501f - <alloc[9fa3fef380221c31]::boxed::Box<dyn core[a3424aac13c77cf6]::ops::function::FnOnce<(), Output = ()>> as core[a3424aac13c77cf6]::ops::function::FnOnce<()>>::call_once
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/alloc/src/boxed.rs:2206:9
107: 0x557069cd501f - <std[cbf56a46dac989f5]::sys::thread::unix::Thread>::new::thread_start
at /rustc/cc3eee7fbe17ea4b7238531cb97e1b7b8bd6afce/library/std/src/sys/thread/unix.rs:124:17
108: 0x7f75f1a9698b - <unknown>
109: 0x7f75f1b1a9cc - <unknown>
110: 0x0 - <unknown>
Encountered a panic in system `bevy_render::renderer::render_system`!
```
</details>
## Solution
- Remove the `ViewTarget` when it becomes unavailable
## Testing
- Testing by running the bevy examples on linux
---------
Co-authored-by: IceSentry <IceSentry@users.noreply.github.com>
# Objective `markdownlint` fails on `docs/cargo_features.md` as it doesn't like the space before the pipe at the end of this line ## Solution - Add a `.` ## Testing - CI
# Objective `load_font_to_fontdb` clones the font handle needlessly. ## Solution Just call id() on it.
# Objective - Debugging an application with multiple cameras can be really annoying because it's hard to know at a glance which pass is associated with which camera. - wgpu exposes a feature to set debug_group that will add labels around groups of passes and draw commands ## Solution - Expose the debug_group feature to the render graph. - Each sub graph can now specify a debug group - Add a new debug group label to each camera with the camera order and entity id - I also added the new debug_group to the tracy span so you can more easily see which span is associated with which camera ## Testing - I tested the 3d_scene and split_screen examples --- ## Showcase Here's what it looked like before <img width="1626" height="98" alt="ngfx-ui_cH0BZAQWh9" src="https://github.com/user-attachments/assets/ef8cdb59-f402-45cd-b2f9-90d315e8e411" /> Here's what the split_screen example looks like inside nvidia nsight with the new debug group labels. You can clearly see each camera clearly identified. <img width="1933" height="125" alt="ngfx-ui_t4L2AheYS3" src="https://github.com/user-attachments/assets/980c4c7f-c933-44b8-8bfb-34406221bf06" />
# Objective The `measure_text_system` and `text_system` systems don't do anything except iterate a query and then delegate to two other functions, `create_text_measure` and `queue_text`, respectively. This doesn't serve any purpose and just makes these systems harder to understand. ## Solution Flatten the module by moving the code from `create_text_measure` and `queue_text` into the systems and remove those functions.
…alified path (bevyengine#21981) # Objective Fixes bevyengine#21980 ## Solution Use fully qualified path for `Entity` ## Testing The following code now compiles ```rust mod test { fn derive_component_relationship_hygiene() { #[derive(Debug, bevy::prelude::Component)] #[relationship(relationship_target = RelTarget)] struct Rel(pub bevy::prelude::Entity); #[derive(Debug, bevy::prelude::Component)] #[relationship_target(relationship = Rel)] struct RelTarget(bevy::prelude::Entity); } }``` Co-authored-by: Heart <>
# Objective Problems: * If a drag starts over a hovered entity, `picking_events` doesn't add the hovered entity to the `dragging_over` map in `PointerButtonState`. This causes a panic when the pointer is moved and `picking_events` tries to update the non-existant `dragging_over` state for the hovered entity. * `DragEnter` isn't dispatched on `DragStart`. This doesn't seem ideal. The drag isn't crossing a geometric boundary, but it is causing the dragged over entities to enter into a dragged over state. Fixes bevyengine#21998 ## Solution * Update the `dragging_state` for all hovered entities every frame, before handling any `PointerInput`s. * Reworked the `DragEnter` dispatch logic. `DragEnter` now also fires when a drag starts over an already hovered entity. ## Testing The examples using drag events should no longer panic: ``` cargo run --example standard_widgets --features="experimental_bevy_ui_widgets" ``` ``` cargo run --example ui_drag_and_drop ```` --------- Co-authored-by: Kevin Chen <chen.kevin.f@gmail.com>
…/Metal (bevyengine#21729) # Objective - Fixes bevyengine#21719 ## Solution - Implementing `bindless_supported` of the `AsBindGroup` trait for `ExtendedMaterial`: ```rust fn bindless_supported(render_device: &RenderDevice) -> bool { B::bindless_supported(render_device) && E::bindless_supported(render_device) } ``` Before it just returned the default (true), leading to the mismatch. I made small, mostly stylistic, improvements to `fn bind_group_layout_entries` and a few other locations like a comment in `extended_material` during debugging but I could move that out into a separate PR as well. Since the changes are rather limited and related to the issue I decided to leave it in for now. ## Testing - Tested on Windows/NixOS and MacOS, tested multiple examples but most testing happened on the `extended_material_bindless` and `extended_material` examples.
# Objective The proposed ["Resources as entities"](bevyengine#20934 ) PR makes Resource implement Component. This creates a situation where we need to do: ```rust #[derive(Resource, Reflect)] #[reflect(Resource, Component)] struct Thing; ``` I'm of the mind that we should add the ability for TypeData to have "dependencies". Ex `reflect(Resource)` implies `reflect(Component)`. For "subtrait" types, I think supporting this is logical / users would appreciate it. ## Solution 1. Add a new `FromType<T>::insert_dependencies` function with a default impl (which makes this a non-breaking change). This does kind of overload the `FromType` trait (ex: a name like `GetTypeData` might be better with this new context), but this is a pretty niche trait / piece of functionality, and I like the idea of not breaking people. 2. Add a new `TypeRegistration::register_type_data<T, V>` function, which initializes the TypeData `T` for a given type `V` , inserts that type data, and also inserts any dependent type data using `insert_dependencies`. 3. Adjust the `Reflect` macro to use `register_type_data` instead of `insert(FromType::<Self>::from_type())` This makes it possible to do the following: ```rust impl<R: Resource + FromReflect + TypePath> FromType<R> for ReflectResource { fn from_type() -> Self { ReflectResource } fn insert_dependencies(type_registration: &mut TypeRegistration) { type_registration.register_type_data::<ReflectComponent, R>(); } } ``` Which then allows dropping `reflect(Component)`: ```rust #[derive(Resource, Reflect)] #[reflect(Resource)] struct Thing; ``` ## Testing I added a unit test 😜
For esoteric reasons we need to send this to the MainWorld for processing. All the fields are GPU resources or Arc'd so it can be trivially cloned.
# Objective Since we set explicit font size and line height attributes for every text section, the `Metrics` values passed to the text buffer don't matter. We can just initialize the buffer with some dummy value and then ignore it. ## Solution * Initialize the text buffer to some dummy values. * Remove the code that collects and sets the metrics during text updates.
# Objective In `TextPipeline::update_buffer` the `shape_until_scroll` call is redundant. The preceding line that calls `set_rich_text`, calls `shape_until_scroll` itself before returning. ## Solution Remove the `shape_until_scroll` call. ## Testing The `testbed_ui` screenshot CI will fail with no text rendered if this is incorrect.
# Objective This PR is a sister PR necessary for the website to have `required_features` data. You will find more information on the motivations there: bevyengine/bevy-website#2313 ## Solution - Add the required_features data to the examples docs export ## Testing I tested both together and it worked fine
# Objective My [TypeData dependencies](bevyengine#22016 ) PR regressed native binary size by ~8mb. (thank you [twitcher](https://github.com/bevyengine/twitcher/)) <img width="858" height="306" alt="image" src="https://github.com/user-attachments/assets/e6d86c67-33f6-4280-bee4-49771014b678" /> ## Solution - Inline `register_type_data`, which restores the original binary size: - `release breakout` before bevyengine#22016: 127.3mb - `release breakout` after bevyengine#22016: 136.4mb - `release breakout` after this PR: 127.4mb
# Objective - In bevyengine#21822 the MSRV bump triggers some new lint warnings, so this pr fixes them. ## Solution - Bumped the msrv in bevy_ecs and fixed the lints. But this pr does not actually bump the msrv. These fixes are all for combining nested if's together.
The previous docs incorrectly states that the `ExtractSchedule` is run on the main world. Also some small additional changes. --------- Co-authored-by: Ivar Källström <ivar.kallstrom@nekohealth.com> Co-authored-by: JMS55 <47158642+JMS55@users.noreply.github.com>
# Objective Text is shaped in `measure_text_system`. When the schedule reaches `text_system` there's no need to reupdate the cosmic-text buffer a second time. `text_system` should only be updating any stale `TextLayoutInfo` components. ## Solution * Add a new method `update_text_layout_info` to `TextPipeline`. This method updates the given `TextLayoutInfo` without performing any shaping. * Call `update_text_layout_info` instead of `queue_text` from `text_system`. * Only query for `TextFont`, instead of the full `TextUiReader`. # The next step is to remove `TextPipeline::queue_text`. I didn't do that here as it's a fairly large refactor and I have a bunch of other open text PRs I'd like to get merged first. ## Testing #### yellow = this PR, red = main ``` cargo run --example many_glyphs --release --features trace_tracy,debug -- --no-text2d --recompute-text ``` <img width="1599" height="851" alt="Screenshot 2025-11-28 130411" src="https://github.com/user-attachments/assets/d21a42bf-8ea9-48b9-8cf3-24f742cb4174" /> ``` cargo run --example many_buttons --release --features trace_tracy,debug -- --text --respawn ``` <img width="1597" height="767" alt="Screenshot 2025-11-28 145240" src="https://github.com/user-attachments/assets/75d2d989-37fc-4804-9c6d-6056413d91ef" />
# Objective Fixes bevyengine#21336. `bevy_platform` and dependents such as `bevy_ecs` may be used on web without incurring the `RUSTFLAGS` requirement of `getrandom`. ## Solution Remove dependency `bevy_platform` → `getrandom`. Note: There was a suggestion of adding a dependency `bevy_math` → `getrandom` to replace it, but `bevy_math` does not actually depend transitively on `getrandom` at all (except in its examples), nor does any other Bevy library. If making `getrandom` work is desired for convenience of Bevy users, we could add `bevy_internal/web` → `getrandom/wasm_js`, but that would not be for the use of Bevy itself at all, and it would mean that Bevy users would hit the `RUSTFLAGS` requirement even if they don't truly need it. ## Testing - Ran `cargo run -p ci -- compile` and `cargo run -p ci -- test`. - Tested depending on this version of `bevy_ecs` in my own wasm32 project. - Have not tested any further feature combinations.
# Objective
- Fix `cargo t -p bevy_asset --all-features`.
- Note: `all-features` do not run on CI!
- The doc tests for the `WebAssetPlugin` don't compile at all. There are
bad imports and we don't even add the `AssetPlugin`.
## Solution
- Add missing imports, and add missing plugins to the `App`.
## Testing
- Ran `cargo t -p bevy_asset --all-features` and it passes now!
…gine#22042) # Objective Previously, to modify a sampler when loading an image with settings it was required to set all fields individually. Much of the time, these settings are all the same so to enable repeating textures you have to set the address_mode 3 times. To set filters you have to set them another 3 times. ```rust MeshMaterial3d(materials.add( StandardMaterial { base_color_texture: Some( asset_server.load_with_settings( "floor_graph_base_color.png", |settings: &mut ImageLoaderSettings| { let descriptor = settings.sampler.get_or_init_descriptor(); descriptor.address_mode_u = bevy::image::ImageAddressMode::Repeat; descriptor.address_mode_v = bevy::image::ImageAddressMode::Repeat; descriptor.address_mode_w = bevy::image::ImageAddressMode::Repeat; descriptor.mag_filter = ImageFilterMode::Linear; descriptor.min_filter = ImageFilterMode::Linear; descriptor.mipmap_filter = ImageFilterMode::Linear; } ), ), unlit: true, cull_mode: None, uv_transform: Affine2::from_scale(Vec2::new(30., 90.)), ..default() }, )), ``` ## Solution Add two new helpers, loosely modeled after the `Transform::with_<field>` functions. Further modifications can still be made to the descriptor for use cases which want to set one of the three fields differently, or additionally set anisotropy_clamp, etc. ```rust let descriptor = settings .sampler .get_or_init_descriptor() .set_address_mode(ImageAddressMode::Repeat) .set_filter(ImageFilterMode::Linear); ``` ## Testing New test in bevy_image ## Showcase ```rust MeshMaterial3d(materials.add( StandardMaterial { base_color_texture: Some( asset_server.load_with_settings( "floor_graph_base_color.png", |settings: &mut ImageLoaderSettings| { let descriptor = settings .sampler .get_or_init_descriptor() .set_address_mode(ImageAddressMode::Repeat) .set_filter(ImageFilterMode::Linear); } ), ), unlit: true, cull_mode: None, uv_transform: Affine2::from_scale(Vec2::new(30., 90.)), ..default() }, )), ``` This PR now includes: - `set_filter` - `set_address_mode` - `set_anisotropic_filter` --------- Co-authored-by: Greeble <166992735+greeble-dev@users.noreply.github.com>
…ctSizeIterator::len` to panic (bevyengine#22035) # Objective - Fixes `ExactSizeIterator::len` panic in a few of these iterators. Note: the std default impl of `ExactSizeIterator::len` has `assert_eq!(Some(lower), upper);`. I am facing this issue myself with `<index_set::Iter as ExactSizeIterator>::len`. - Should slightly improve performance in some cases, where the more precise `size_hint` causes less allocations (for example when collecting into a `Vec`) ## Solution - Add `size_hint` overrides that forward to inner iterators or an `ExactSizeIterator::len` override in one specific case. ## Testing - Since the overrides are pretty simple, I mostly didn't add any tests. - I didn't feel 100% confident in the `WriteBatchIds::size_hint` implementation, so I added a test there.
…e_buffer` (bevyengine#22021) # Objective Rearrange the order that cosmic text's properties are set for improved performance. ## Solution Update size and metrics after `set_rich_text` in `TextPipeline::update_buffer` ## Testing yellow = this PR, red = main: ``` cargo run --example many_glyphs --features=trace_tracy,debug --release -- --recompute-text ``` <img width="1610" height="605" alt="reorder" src="https://github.com/user-attachments/assets/4819aa79-a147-45ab-8636-3e17f81462b2" /> <img width="1603" height="617" alt="reorder-measure-text" src="https://github.com/user-attachments/assets/eb74569d-79e1-4138-9283-641eae8fd2ab" />
…ck. (bevyengine#22017) # Objective - Fix the first flake related to bevyengine#22001. - We had a double lock problem. We would first lock `asset_infos`, then lock one of the assets within `asset_infos` **and then dropped the `asset_infos` lock**. This means however that if a process needs to access `asset_infos` (which is necessary for loading nested assets during processing), we'll have one thread trying to lock 1) asset_infos, 2) per-asset lock, and we'll have another thread trying to lock 1) per-asset lock (we've already dropped the asset_infos lock), 2) asset_infos. A classic deadlock! ## Solution - Before locking the per-asset lock, we clone the `Arc<RwLock>` out of the `asset_infos`, drop the `asset_infos`, and only then lock the per-asset lock. This ensures that we never hang on the `asset_infos` lock when just trying to fetch a single asset. - Make all the access to `asset_infos` "short" - they get what they need out of `asset_infos` and then drop the lock as soon as possible. - I also used `?` to cleanup some methods in `ProcessorAssetInfos`, where previously it was "remove the asset info, then have one big `if let` after it". Now we just return early if the value is none. - I also happened to fix a weird case where the new path in a rename wasn't guarded by a transaction lock. Now it is! ## Testing - Running without this fix I get "Ran out of loops" from the `only_reprocesses_wrong_hash_on_startup` test quite quickly (after a minute or so). With this fix, I now only get the assertion failure problem. If I also skip that assertion, the test hasn't flaked for a while! Yay, no more deadlock!
# Objective `queue_text` does a second pass to compute the size of the text buffer, this could be moved inside the layout update loop instead. ## Solution Do the buffer size computation inside the update loop.
# Objective - Recompute AABBs when meshes change. - Optimize sprite AABB re-computation to avoid component insertion where mutation is possible. - Fixes bevyengine#4294 and closes bevyengine#7971 ## Solution - Implement the things. ## Testing - CI
# Objective Fixes bevyengine#22031 (comment). Fixes bevyengine#15201. bevyengine#22031 makes `ViewTarget::out_texture_format` to return the underlying texture’s format, which causes some issues: 1. `ExtractedWindow::swap_chain_texture_view` always uses srgb view. But the underlying swap chain texture in WebGPU can be Bgra8unorm, leading to format mismatch between the render pipeline and the render pass. 2. We can no longer use srgb view for non-srgb target texture, it will panic due to incompatible pipeline: ```rs let mut image = Image::new_target_texture(512, 512, TextureFormat::Rgba8Unorm); image.texture_view_descriptor = Some(bevy_render::render_resource::TextureViewDescriptor { format: Some(TextureFormat::Rgba8UnormSrgb), ..Default::default() }); image.texture_descriptor.view_formats = &[TextureFormat::Rgba8UnormSrgb]; ``` ## Solution Reverts bevyengine#22031. Renames some `format` to `view_format` explicitly. Adds `view_format` to `GpuImage` and `Image::new_target_texture` so we can make render pipeline match render pass texture view. ## Testing Tested `render_to_texture` and `screenshot` examples on linux and webgpu. <details> <summary>The rendered Rgba8Unorm texture with or without srgb view in MeshMaterial3d looks the same, but the underlaying data is different:</summary> With srgb view: <img width="912" height="640" alt="屏幕截图_20251212_223355" src="https://github.com/user-attachments/assets/d320bad9-d11a-4d3d-93a9-879af6413658" /> Without srgb view: <img width="912" height="640" alt="屏幕截图_20251212_223313" src="https://github.com/user-attachments/assets/522abf23-9c85-468d-8d17-a94495ee4452" /> </details>
) # Objective when `RenderAssets` with `RenderAssetUsages::RENDER_WORLD` and without `RenderAssetUsages::MAIN_WORLD` are extracted, the asset is removed from the assets collection. this causes some issues: - systems which rely on the asset, like picking with meshes, fail with "asset not found" errors which are unintuitive. - loading the asset by path a second time results in the asset being reloaded from storage, re-extracted and re-transferred to gpu, replacing the existing asset - knowledge about the asset state is lost, we cannot tell if an asset is already loaded with `AssetServer::get_handle` - metadata (image size, e.g.) is no longer available for the asset ## Solution ### extraction: - add `take_gpu_data` to the `RenderAsset` trait. use it to pull the data out of the asset for transfer, and leave the empty asset in the collection. default implementation just `clone`s the asset. - if the data has already been taken, ~~panic. this follows from modifying an asset after extraction, which is always a code error, so i think panic here makes sense~~ _log an error_ ### Mesh/RenderMesh: - make `Mesh::attributes` and `Mesh::indices` options - take them on extraction - `expect` operations which access or modify the vertex data or indices if it has been extracted. accessing the vertex data after extraction is always a code error. fixes bevyengine#19737 by resulting in the error `Mesh has been extracted to RenderWorld. To access vertex attributes, the mesh must have RenderAssetUsages::MAIN_WORLD` - provide `try_xxx` operations which allow users to handle the access error gracefully if required (no usages as part of this pr, but provided for future) - compute the mesh `Aabb` when gpu data is taken and store the result. this allows extracted meshes to still use frustum culling (otherwise using multiple copies of an extracted mesh now panics as `compute_aabb` relied on vertex positions). there's a bit of a tradeoff here: users may not need the Aabb and we needlessly compute it. but i think users almost always do want them, and computing once (for extracted meshes) is cheaper than the alternative, keeping position data and computing a fresh `Aabb` every time the mesh is used on a new entity. ### Image/GpuImage: images are a little more complex because the data can be deliberately `None` for render-targets / GPU-written textures where we only want an uninitialized gpu-side texture. - take `Image::data` on extraction - record on the resulting `GpuImage` whether any data was found initially - on subsequent modifications with no data, panic if there was data previously corner case / issue: when used with `RenderAssetBytesPerFrameLimiter` there may be no previous gpu asset if it is still queued pending upload due to the bandwidth limit. this can result in a modified image with initial data skipping the `had_data` check, resulting in a blank texture. i think this is sufficiently rare that it's not a real problem, users would still hit the panic if the asset is transferred in time and the problem/solution should be clear when they do hit it. ### ShaderStorageBuffer/GpuShaderStorageBuffer follows the same pattern as Image/GpuImage: - take `ShaderStorageBuffer::data` on extraction - record on the resulting `GpuShaderStorageBuffer` whether any data was found initially - on modifications with no data, panic if there was data previously we don't have the queue issue here because `GpuShaderStorageBuffer` doesn't implement `byte_len` so we can't end up queueing them. #### other RenderAssets i didn't modify the other `RenderAsset` types (`GpuAutoExposureCompensationCurve`, `GpuLineGizmo`, `RenderWireframeMaterial`, `PreparedMaterial`, `PreparedMaterial2d`, `PreparedUiMaterial`) on the assumption that ~~cloning these is cheap enough anyway~~ _the asset usages are not exposed so we should never call `take_gpu_data`. the default implementation panics with a message directing users to implement the method if required_ ## Testing only really tested within my work project. i can add some explicit tests if required. --------- Co-authored-by: Jasmine S <jasmine.schweitzer@nominal.io> Co-authored-by: Greeble <166992735+greeble-dev@users.noreply.github.com>
# Objective Fixes bevyengine#21582 ## Solution In the original implementation of `extract_meshes_for_gpu_building`, we didn’t account for the case where components are removed. This patch adds fixes for all affected components. ## Testing The example `shadow_caster_receiver` works now.
…0671) # Objective Fixes bevyengine#20376: CombinatorSystems short circuit if one of the systems fails to validate, e.g. because it queries a Component that isn't resident in the world. ## Solution Instead, we can treat the system failing as the system yielding `false`, appropriately querying the second system depending on the logical operator. ## Testing I added a new test that calls the combinators in different configurations with a failing system as both the rhs and lhs of the combinator and counts the invocations of the system and the condition. --- --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
# Objective - Users often want to run a fullscreen shader but the current solution involves copying the custom_post_processing example which is a 350 line file with a lot of low level wgpu complexity. Users shouldn't have to deal with that just to make a fullscreen shader ## Solution - Introduce a new FullscreenMaterial trait and FullscsreenMaterialPlugin - This new material will run a fullscreen triangle with the specified shader. It builds on top of the existing FullscreenShader infrastructure - It lets user customize the node ordering. There's no defaults right now becausae it's intended as a bit of a primitive plugin. Eventually we could have some kind of default for custom post processing ## Testing Made a new fullscreen_material example and made sure it works ## Follow up Once this is merged there are various things that should be done to improve it. Add the option to bind the depth texture, offer defaults for post processing, use a full AsBindGroup, add a way to bind the gbuffer. --------- Co-authored-by: JMS55 <47158642+JMS55@users.noreply.github.com> Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
# Objective Fix the stackoverflow on asset reload when asset contains its own path as a dependency. ## Problem There is a way to create a circular dependency graph with an asset loader. I don't know how I managed to do it. I have tried to create a minimal example, but it has not exhibited the error yet. But I do have a means of exhibiting the error with my project Nano-9, reproduction details below. ## Solution This commit has two fixes: one at the insertion point (introducing self-reference), and one at the recursion point (following self-reference). ### Insertion point Issue warning when an asset wants to mark itself as a dependency and do not allow inserting itself as a dependent. ### Recursion point Check for self loops. Warn on self detection and do not loop. It's likely that if you fix it at the insertion point, you don't need to worry about it at the recursion point. You will have stopped the cause of the issue. I left both in for transparency about where the issue lies so far as I could see. ## Testing I can reproduce this error with an example from my [Nano-9 project](https://github.com/shanecelis/nano-9). I wish it were a minimal example. It's not, but I have put it on a branch to isolate this issue. It uses my Bevy fork that is v0.16.1 plus a commit tagged v0.16.1b, which was required for it to build. This PR is a cherry pick of the fix commit against Bevy's main branch. I can reproduce this error by doing the following: ```sh git clone -b bevy-asset-stackoverflow https://github.com/shanecelis/nano-9.git cd nano-9 cargo run --example sprite --features watcher --no-default-features & touch assets/BirdSprite.png ``` Here is an excerpt of the crash report on macOS 15.6.1, M4 Max: ``` ... Thread 0 Crashed:: main Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x18cc2a388 __pthread_kill + 8 1 libsystem_pthread.dylib 0x18cc6388c pthread_kill + 296 2 libsystem_c.dylib 0x18cb6ca3c abort + 124 3 sprite 0x10598d09c std::sys::pal::unix::abort_internal::h1edcc850f5dec78e + 12 4 sprite 0x10598c5b0 std::process::abort::hffd6db68ff0662a6 + 12 5 sprite 0x10580d464 std::sys::pal::unix::stack_overflow::imp::signal_handler::h7b8eae417c5ee98d + 604 6 libsystem_platform.dylib 0x18cc9d6a4 _sigtramp + 56 7 sprite 0x10573f890 _$LT$std..path..Path$u20$as$u20$core..hash..Hash$GT$::hash::h732e05949b6a170e + 136 8 sprite 0x10573f890 _$LT$std..path..Path$u20$as$u20$core..hash..Hash$GT$::hash::h732e05949b6a170e + 136 9 sprite 0x104d5f278 _$LT$atomicow..CowArc$LT$T$GT$$u20$as$u20$core..hash..Hash$GT$::hash::h6c45383281764a05 + 40 10 sprite 0x104ed62d8 _$LT$bevy_asset..path..AssetPath$u20$as$u20$core..hash..Hash$GT$::hash::h11b348528182d76d + 52 11 sprite 0x104ded598 hashbrown::map::make_hash::hb7812997186aa817 + 56 12 sprite 0x104de8eec hashbrown::map::HashMap$LT$K$C$V$C$S$C$A$GT$::insert::h3a8b107dcf9615e9 + 64 13 sprite 0x104da7264 hashbrown::set::HashSet$LT$T$C$S$C$A$GT$::insert::h44e988e7a7752688 + 24 14 sprite 0x104e7b15c bevy_platform::collections::hash_set::HashSet$LT$T$C$S$GT$::insert::hb1d23d506d548fcc + 24 15 sprite 0x104dba770 bevy_asset::server::handle_internal_asset_events::_$u7b$$u7b$closure$u7d$$u7d$::queue_ancestors::hd1670687bb18ae9f + 216 16 sprite 0x104dba780 bevy_asset::server::handle_internal_asset_events::_$u7b$$u7b$closure$u7d$$u7d$::queue_ancestors::hd1670687bb18ae9f + 232 17 sprite 0x104dba780 bevy_asset::server::handle_internal_asset_events::_$u7b$$u7b$closure$u7d$$u7d$::queue_ancestors::hd1670687bb18ae9f + 232 18 sprite 0x104dba780 bevy_asset::server::handle_internal_asset_events::_$u7b$$u7b$closure$u7d$$u7d$::queue_ancestors::hd1670687bb18ae9f + 232 19 sprite 0x104dba780 bevy_asset::server::handle_internal_asset_events::_$u7b$$u7b$closure$u7d$$u7d$::queue_ancestors::hd1670687bb18ae9f + 232 ... ``` ### Exercising the fix Alter Nano-9's Cargo file to use the fix branch: ```diff -bevy = { git = "https://github.com/shanecelis/bevy.git", tag = "v0.16.1b" } +bevy = { git = "https://github.com/shanecelis/bevy.git", branch = "fix/asset-reload-overflow" } ``` Run the same command again, and you will see a warning: ```sh 2025-10-21T04:10:52.348726Z WARN bevy_asset::server::info: Asset 'BirdSprite.png' wants to treat itself as a dependency ``` ## Alternative Solution This commit fixes the immediate stackoverflow issue; however, it would be even better if the user were prevented from making a circular dependency graph in the first place. --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
# Objective - Migrate TAA to `spec_v2` ## Testing - Ran `anti_aliasing` example, seems fine
# Objective #### Fix two problems 1. Scrollbars are placed in the padding region of the node, not the content region. The content insets returned by `ComputedNode::content_inset` should account for the sizes of the scrollbars. 3. In `update_clipping_system` the clipping rect calculations are incorrect, `scrollbar_size` should only be added to the `right` and `bottom` when `visual_area` is set to `ContentBox`. For `BorderBox` and `PaddingBox`, the scrollbars are inside the clipping rect. ## Solution 1. Add the scrollbar size to the `right` and `bottom` insets returned by `ComputedNode::content_inset`. 2. Since `content_inset` now includes `scrollbar size`, remove the subtraction from `clip_rect.max` in `update_clipping_system`. ## Testing Look at: ``` cargo run --example scrollbars --features="experimental_bevy_ui_widgets" ```
# Objective - Followup on bevyengine#21235 - See mockersf/bevy@easy-screenshots...mockersf:bevy:easy-screenrecording for what's new - Be able to record videos from Bevy in a consistent manner ## Solution - Make a new `EasyScreenRecordPlugin` in the dev tools ## Testing - Add to any example ``` .add_plugins(bevy::dev_tools::EasyScreenRecordPlugin::default()) ``` - Run the example with the feature `bevy_internal/screenrecording` enabled - press the space bar - wait for it... - press the space bar again - screen recording! 🎉 - almost... you now have a h264 file. VLC can read them, but they are not the most friendly format - `ffmpeg` is our friend! `for file in *.h264; do ffmpeg -i $file $file.mp4; done` - you now have a .mp4 file that can be shared anywhere! --- ## Showcase directly taken by Bevy https://github.com/user-attachments/assets/217f5093-9443-40e5-b2ce-33f65f6a56c6
# Objective The UI picking backend queries twice for the node data. Simplify `ui_picking` by storing the camera entity and picking data in `hit_nodes` instead of the second query. ## Solution Store the camera entity and picking data in `hit_nodes` instead of querying for them again.
# Objective Add helper functions to `ComputedNode` that return the bounds of the node's border, padding, and content areas. ## Solution Add helper functions `border_box`, `padding_box`, and `content_box` to `ComputedNode`. # Included a release note. These changes are very trivial and don't really need one, but I've got quite a few more less trivial changes to `ComputedNode` that I want to add later. ## Testing This PR also includes a couple of trivial tests.
RenderTarget was a Component that derived Reflect but did not Reflect Component as of this merge today: bevyengine@67633b3 Without this fix, spawning a scene with a camera (such as from a Blender export) causes a panic: > scene contains the unregistered component `bevy_camera::camera::RenderTarget`. consider adding `#[reflect(Component)]` to your type
…ne#22005) # Objective Builtin BRP methods make constant use of `parse` and `parse_some` in parsing utilities. Making them public allows users to use them in their own code. ## Solution Make both functions `pub`. ## Testing I think testing is not necessary, especially since doc strings do not link anywhere.
# Objective
- Trying to doc most of the unsafe in the ecs crate so we can turn on
`unsafe_op_in_unsafe_fn`.
## Solution
- Unfortunately reviewing the unsafe docs will probably not be trivial
if we try to do it all in one pr. There are 400+ warnings when you turn
on the lint. So we need to break it up as much as possible as reviewing
the safety contracts in some cases isn't the easiest.
- This pr includes two types of unsafe blocks.
1. Blocks that already had safety comments, but were missing the `unsafe
{}` block.
2. Unsafe functions that have the same safety contract as their unsafe
parent function and are very short. (Usually just the call to the
function).
As it turns out, many glTF extensions require accessing the data from other extensions. Trying to isolate and scope access is much less helpful than exposing the glTF objects for consumers to take what they want. This includes - extension data in the "others" category (anything the gltf crate doesn't support explicitly) - the functions that return the extension data the gltf crate *does* have hardcoded support for - names and any other available data --- The diff for users is that they - no longer have to worry about defining extension ids to process - no longer have to worry about multiple calls due to those ids - now have to use `.extension_value()`, `.name()`, or similar to get relevant data - Can now access `.light()` or any other data built-in to the gltf crate, such as [`.variants`](https://docs.rs/gltf/1.4.1/gltf/struct.Document.html#method.variants) for `KHR_materials_variants`. An example diff on the user side can be viewed in the update commit for the Skein PR: rust-adventure/skein@ac1e510
…bevyengine#22115) # Objective - derive `Clone` and `Copy` for the newer unit structs in `interaction_states`, this is useful for frameworks that are generic over `Component + Clone/Copy` and is also the status quo for the existing `InteractionDisabled` component defined a few lines above ## Solution - derive `Clone` and `Copy` for `Pressed`, `Checkable`, and `Checked`
# Objective - Followup to bevyengine#22106. ## Solution - Use slice `last` instead of iter `last` for better performance - we don't need to iterate just to find the last element.
…atures. (bevyengine#22125) # Objective - bevyengine#22106 accidentally added imports for AnimationClip, HashMap, and HashSet - but these are only available/used if the bevy_animation feature is enabled. So running `cargo t -p bevy_gltf` fails to compile and gives warnings! ## Solution - Guard these `use` statements on the bevy_animation feature. ## Testing - Ran `cargo t -p bevy_gltf`. - Ran `cargo t -p bevy_gltf --all-features`.
…2124) # Objective - Closes bevyengine#21949 ## Solution - Implements the solution as suggested by 21949. The Directional Navigation Map does not prune any old edges that may be connected to removed Nodes, so we clear the map between rebuilds of the map. (If the more preferable solution figures out what nodes were removed and then calls `map.remove_multiple` instead, you can feel free to reject this) ## Testing - Did you test these changes? If so, how? I did not test this change, but the reporter of the issue did (via backport to an older version of Bevy). However, the fix is straightforward and explains itself. If you would like an automated test somehow, some pointers to tests that do similar would be welcome.
# Objective - use gizmos in non-system contexts, such as deep in a math library or callback without ecs access. - kind of upstream https://github.com/atlv24/glizmo - builds off of bevyengine#22105 ## Solution - mutex + deref ## Testing -
# Objective - Screen Recording is not ready to be exposed, and very hard to build on windows ## Solution - Disable it for now on windows --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com> Co-authored-by: JMS55 <47158642+JMS55@users.noreply.github.com>
…av (bevyengine#22123) # Objective - Fixes bevyengine#21950 ## Solution - Updated the query as suggested in the issue to also check for `InheritedVisibility`. Entities that have `Visibility::INHERITED` and `InheritedVisibility::HIDDEN` should also be ignored for directional navigation ## Testing - Did you test these changes? If so, how? I did not test this change at all! And I wasn’t sure how best to set up an automated test for this since there is not an existing one for that function, else I would have. However, the logic change is simple at least… So if a test is desired, just let me know and please provide me with a little direction :)
…#22131) # Objective extension hooks for `on_texture` currently pass the extension data and not the gltf object. ## Solution `IoTaskPool::scope` preserves ordering if the futures are only spawned from the root scope, so we can use that to zip with the texture references for hooks
ca83f5a to
7d6aae4
Compare
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.
pr created to show a clean diff on top of bevyengine#21732 for the
InfallibleMeshimplementation.