Arcanization of wgpu core resources#3626
Conversation
Bump cargo-run-wasm from 0.3.0 to 0.3.2 (gfx-rs#3629)
string::new doesn't take any arguments
Update outdated notice of GL being unsupported (gfx-rs#3638)
|
Not sure if you're aware, but I believe staging buffers aren't being released currently (run bunnymark, spawn some bunnies and watch the GPU's shared memory usage skyrocket (on Vulkan it spams |
|
@Elabajaba it should be fixed now :) |
Integrating last master changes
|
I've fixed the compiler errors for the Metal backend (should I open a pull request on your branch @gents83?) but there's a final issue to solve: when shutting down a wgpu application using the Metal backend, the following errors occur: I have checked the current trunk/master branch of upstream wgpu and can confirm these errors do not occur there. |
Lovely! Sure - let's do that, I'll review it and merge it if possible 👍
Ah! Oki - it's possible that there is some missing Arc between fence and command buffer from the message and the Command Buffer is getting released before the fence (or maybe it's just a wrong destruction order). |
Trying to debug it right now, and actually a command buffer associated with the wait value (or higher) is never added to the fence. The last command buffer to be added always has a value of On upstream, the last Edit 1: Maybe I'm missing something, but I've debug-logged all increments to Edit 2: From https://doc.rust-lang.org/std/sync/atomic/struct.AtomicU64.html#method.fetch_add:
Am I right to assume that all calls to Edit 2: Yup, this seems to fix it! I'll open another PR on your branch so you can review @gents83 |
From https://doc.rust-lang.org/std/sync/atomic/struct.AtomicU64.html#method.fetch_add: > Adds to the current value, returning the previous value.
|
Tested on my own project: with my proposed changes this PR nows builds on all platforms: https://github.com/niklaskorz/linon/actions/runs/4638085286 Unfortunatly, wgpu still does not run on the web, but that is tracked in rust-lang/cargo#3430. |
Fix compiler errors for Metal backend
Fix usage of active_submission_index.fetch_add
Fix release build
|
I ran into some deadlocks that happen on both trunk and this branch in #4686, so I submitted a fix against this branch here: gents83#17 |
|
@SludgePhD Nice! The plan is to merge this on monday, so I suspect we should wait post merge to fix a pre-existing issue. |
Shorten lock durations to avoid deadlocks - thanks a lot @SludgePhD :)
|
Alright, brace yourselves folks! 🥁 |
@teoxoy with some latest changes from trunk I had that test in particular failing if separated in different sumbissions. |
…6978ae2d251. r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler,teoxoy Note: This revision contains the arcanization work # Changelog * #4702 Add `WasmNotSendSync` By daxpedda in gfx-rs/wgpu#4702 * #4707 Add more metal keywords By fornwall in gfx-rs/wgpu#4707 * #4706 [naga] remove `span` and `validate` features By teoxoy in gfx-rs/wgpu#4706 * #4709 [dx12] filter out haswell iGPUs By teoxoy in gfx-rs/wgpu#4709 * #4712 Fix typo in pull request template. By jimblandy in gfx-rs/wgpu#4712 * #4598 Add more lints By daxpedda in gfx-rs/wgpu#4598 * #4713 [naga wgsl-in] Include base when printing pointer and array types. By jimblandy in gfx-rs/wgpu#4713 * #4718 [vk] check that adapters are Vulkan compliant By teoxoy in gfx-rs/wgpu#4718 * #4719 [naga] Let constant evaluation of `As` preserve `Splat` expressions. By jimblandy in gfx-rs/wgpu#4719 * #4725 Corrects typo in examples FrameCounter By cantudo in gfx-rs/wgpu#4725 * #3626 Arcanization of wgpu core resources By gents83 in gfx-rs/wgpu#3626 Differential Revision: https://phabricator.services.mozilla.com/D194048
…6978ae2d251. r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler,teoxoy Note: This revision contains the arcanization work # Changelog * #4702 Add `WasmNotSendSync` By daxpedda in gfx-rs/wgpu#4702 * #4707 Add more metal keywords By fornwall in gfx-rs/wgpu#4707 * #4706 [naga] remove `span` and `validate` features By teoxoy in gfx-rs/wgpu#4706 * #4709 [dx12] filter out haswell iGPUs By teoxoy in gfx-rs/wgpu#4709 * #4712 Fix typo in pull request template. By jimblandy in gfx-rs/wgpu#4712 * #4598 Add more lints By daxpedda in gfx-rs/wgpu#4598 * #4713 [naga wgsl-in] Include base when printing pointer and array types. By jimblandy in gfx-rs/wgpu#4713 * #4718 [vk] check that adapters are Vulkan compliant By teoxoy in gfx-rs/wgpu#4718 * #4719 [naga] Let constant evaluation of `As` preserve `Splat` expressions. By jimblandy in gfx-rs/wgpu#4719 * #4725 Corrects typo in examples FrameCounter By cantudo in gfx-rs/wgpu#4725 * #3626 Arcanization of wgpu core resources By gents83 in gfx-rs/wgpu#3626 Differential Revision: https://phabricator.services.mozilla.com/D194048
…6978ae2d251. r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler,teoxoy Note: This revision contains the arcanization work # Changelog * #4702 Add `WasmNotSendSync` By daxpedda in gfx-rs/wgpu#4702 * #4707 Add more metal keywords By fornwall in gfx-rs/wgpu#4707 * #4706 [naga] remove `span` and `validate` features By teoxoy in gfx-rs/wgpu#4706 * #4709 [dx12] filter out haswell iGPUs By teoxoy in gfx-rs/wgpu#4709 * #4712 Fix typo in pull request template. By jimblandy in gfx-rs/wgpu#4712 * #4598 Add more lints By daxpedda in gfx-rs/wgpu#4598 * #4713 [naga wgsl-in] Include base when printing pointer and array types. By jimblandy in gfx-rs/wgpu#4713 * #4718 [vk] check that adapters are Vulkan compliant By teoxoy in gfx-rs/wgpu#4718 * #4719 [naga] Let constant evaluation of `As` preserve `Splat` expressions. By jimblandy in gfx-rs/wgpu#4719 * #4725 Corrects typo in examples FrameCounter By cantudo in gfx-rs/wgpu#4725 * #3626 Arcanization of wgpu core resources By gents83 in gfx-rs/wgpu#3626 Differential Revision: https://phabricator.services.mozilla.com/D194048 UltraBlame original commit: eb839abb42abde594497e419517260997fa1fc4d
…6978ae2d251. r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler,teoxoy Note: This revision contains the arcanization work # Changelog * #4702 Add `WasmNotSendSync` By daxpedda in gfx-rs/wgpu#4702 * #4707 Add more metal keywords By fornwall in gfx-rs/wgpu#4707 * #4706 [naga] remove `span` and `validate` features By teoxoy in gfx-rs/wgpu#4706 * #4709 [dx12] filter out haswell iGPUs By teoxoy in gfx-rs/wgpu#4709 * #4712 Fix typo in pull request template. By jimblandy in gfx-rs/wgpu#4712 * #4598 Add more lints By daxpedda in gfx-rs/wgpu#4598 * #4713 [naga wgsl-in] Include base when printing pointer and array types. By jimblandy in gfx-rs/wgpu#4713 * #4718 [vk] check that adapters are Vulkan compliant By teoxoy in gfx-rs/wgpu#4718 * #4719 [naga] Let constant evaluation of `As` preserve `Splat` expressions. By jimblandy in gfx-rs/wgpu#4719 * #4725 Corrects typo in examples FrameCounter By cantudo in gfx-rs/wgpu#4725 * #3626 Arcanization of wgpu core resources By gents83 in gfx-rs/wgpu#3626 Differential Revision: https://phabricator.services.mozilla.com/D194048 UltraBlame original commit: eb839abb42abde594497e419517260997fa1fc4d
…6978ae2d251. r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler,teoxoy Note: This revision contains the arcanization work # Changelog * #4702 Add `WasmNotSendSync` By daxpedda in gfx-rs/wgpu#4702 * #4707 Add more metal keywords By fornwall in gfx-rs/wgpu#4707 * #4706 [naga] remove `span` and `validate` features By teoxoy in gfx-rs/wgpu#4706 * #4709 [dx12] filter out haswell iGPUs By teoxoy in gfx-rs/wgpu#4709 * #4712 Fix typo in pull request template. By jimblandy in gfx-rs/wgpu#4712 * #4598 Add more lints By daxpedda in gfx-rs/wgpu#4598 * #4713 [naga wgsl-in] Include base when printing pointer and array types. By jimblandy in gfx-rs/wgpu#4713 * #4718 [vk] check that adapters are Vulkan compliant By teoxoy in gfx-rs/wgpu#4718 * #4719 [naga] Let constant evaluation of `As` preserve `Splat` expressions. By jimblandy in gfx-rs/wgpu#4719 * #4725 Corrects typo in examples FrameCounter By cantudo in gfx-rs/wgpu#4725 * #3626 Arcanization of wgpu core resources By gents83 in gfx-rs/wgpu#3626 Differential Revision: https://phabricator.services.mozilla.com/D194048 UltraBlame original commit: eb839abb42abde594497e419517260997fa1fc4d
|
@gents83 |
Oh! I am guessing that is because I removed the surface_as_hal_mut()? Is it the only case where it's needed? |
As it's a platform feature, I exposed it as mut: #3123, I don't know if it is appropriate to add surface initialization parameter. |
…6978ae2d251. r=webgpu-reviewers,supply-chain-reviewers,ErichDonGubler,teoxoy Note: This revision contains the arcanization work # Changelog * #4702 Add `WasmNotSendSync` By daxpedda in gfx-rs/wgpu#4702 * #4707 Add more metal keywords By fornwall in gfx-rs/wgpu#4707 * #4706 [naga] remove `span` and `validate` features By teoxoy in gfx-rs/wgpu#4706 * #4709 [dx12] filter out haswell iGPUs By teoxoy in gfx-rs/wgpu#4709 * #4712 Fix typo in pull request template. By jimblandy in gfx-rs/wgpu#4712 * #4598 Add more lints By daxpedda in gfx-rs/wgpu#4598 * #4713 [naga wgsl-in] Include base when printing pointer and array types. By jimblandy in gfx-rs/wgpu#4713 * #4718 [vk] check that adapters are Vulkan compliant By teoxoy in gfx-rs/wgpu#4718 * #4719 [naga] Let constant evaluation of `As` preserve `Splat` expressions. By jimblandy in gfx-rs/wgpu#4719 * #4725 Corrects typo in examples FrameCounter By cantudo in gfx-rs/wgpu#4725 * #3626 Arcanization of wgpu core resources By gents83 in gfx-rs/wgpu#3626 Differential Revision: https://phabricator.services.mozilla.com/D194048
Connections
Closes #2710
Closes #4139
Closes #3193
Closes #4686
Steps done:
STATUS: