-
Notifications
You must be signed in to change notification settings - Fork 927
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
Fix Javascript exception on repeated BufferSlice::get_mapped_range
calls
#4726
Merged
Conversation
This file contains 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
Wumpf
approved these changes
Dec 3, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking great, thank you!
Good to go after a tiny bit of additional docs
perfect, thank you again! |
bradwerth
pushed a commit
to bradwerth/wgpu
that referenced
this pull request
Dec 8, 2023
…calls (gfx-rs#4726) * Add reusable buffer mappings for WASM * Run cargo fmt * Update CHANGELOG.md * Update web.rs * Add documentation for WebBuffer struct
moz-v2v-gh
pushed a commit
to mozilla/gecko-dev
that referenced
this pull request
Dec 9, 2023
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735
aosmond
pushed a commit
to aosmond/gecko
that referenced
this pull request
Dec 10, 2023
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735
gecko-dev-updater
pushed a commit
to marco-c/gecko-dev-wordified-and-comments-removed
that referenced
this pull request
Dec 12, 2023
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735 UltraBlame original commit: 0dfeaf41028d13f9dd98b106e262c1deb255398d
gecko-dev-updater
pushed a commit
to marco-c/gecko-dev-comments-removed
that referenced
this pull request
Dec 12, 2023
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735 UltraBlame original commit: 0dfeaf41028d13f9dd98b106e262c1deb255398d
gecko-dev-updater
pushed a commit
to marco-c/gecko-dev-wordified
that referenced
this pull request
Dec 12, 2023
…eb3c29ef785. r=webgpu-reviewers,supply-chain-reviewers,jimb # Changelog * #4807 Bump wasm-bindgen-test from 0.3.38 to 0.3.39 By dependabot[bot] in gfx-rs/wgpu#4807 * #4830 Use Display instead of Debug to log errors. By nical in gfx-rs/wgpu#4830 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4755 [naga wgsl-in] Automatic conversions for `var` initializers. By jimblandy in gfx-rs/wgpu#4755 * #4832 vulkan: fix multi-planar texture creation By xiaopengli89 in gfx-rs/wgpu#4832 * #4758 [vk] remove (old) unused blocklist for dual source blending By teoxoy in gfx-rs/wgpu#4758 * #4828 Remove DX11 backend By valaphee in gfx-rs/wgpu#4828 * #4836 [gl] add support for line and point polygon modes By valaphee in gfx-rs/wgpu#4836 * #4820 Bump futures-lite from 2.0.1 to 2.1.0 By dependabot[bot] in gfx-rs/wgpu#4820 * #4811 Expose shader validation By daxpedda in gfx-rs/wgpu#4811 * #3507 [wgpu-hal] Inline RayQuery Support By daniel-keitel in gfx-rs/wgpu#3507 * #4726 Fix Javascript exception on repeated `BufferSlice::get_mapped_range` calls By DouglasDwyer in gfx-rs/wgpu#4726 * #4841 Remove `expose-ids` Feature By cwfitzgerald in gfx-rs/wgpu#4841 * #4843 Some Minor `wgpu-core` Cleanups By cwfitzgerald in gfx-rs/wgpu#4843 * #4844 Work around cbindgen issue By nical in gfx-rs/wgpu#4844 Differential Revision: https://phabricator.services.mozilla.com/D195735 UltraBlame original commit: 0dfeaf41028d13f9dd98b106e262c1deb255398d
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.
Connections
N/A
Description
Using the BrowserWebGPU backend on latest Chrome, calling
BufferSlice::get_mapped_range
more than once causes a Javascript exception, even though theBufferView
objects are appropriately dropped Rust-side. This is because each call creates a new JS-sideArrayBuffer
viagetMappedRange
, but the specification forgetMappedRange
forbids creating multiple overlapping array buffers. To solve this, this PR creates a single JS-sideArrayBuffer
and re-uses it untilunmap
is called.Testing
Explain how this change is tested.
Checklist
cargo fmt
.cargo clippy
. If applicable, add:--target wasm32-unknown-unknown
--target wasm32-unknown-emscripten
cargo xtask test
to run tests.CHANGELOG.md
. See simple instructions inside file.