summaryrefslogtreecommitdiff
path: root/extensions/webgpu/buffer.rs
diff options
context:
space:
mode:
authorLuca Casonato <lucacasonato@yahoo.com>2021-05-06 16:48:45 +0200
committerGitHub <noreply@github.com>2021-05-06 16:48:45 +0200
commitf208e6a26f3c21c25dbfcfe29491a6f5660c999d (patch)
tree65dbbd45b2f36faab8ae585eb0d270356bcba33e /extensions/webgpu/buffer.rs
parentce76f8c3a97529c86d49c39c6d9a250f978b5430 (diff)
chore: update wgpu and realign to spec (#9760)
Diffstat (limited to 'extensions/webgpu/buffer.rs')
-rw-r--r--extensions/webgpu/buffer.rs19
1 files changed, 10 insertions, 9 deletions
diff --git a/extensions/webgpu/buffer.rs b/extensions/webgpu/buffer.rs
index 9fccd1142..a97e67df3 100644
--- a/extensions/webgpu/buffer.rs
+++ b/extensions/webgpu/buffer.rs
@@ -163,7 +163,7 @@ pub async fn op_webgpu_buffer_get_map_async(
pub struct BufferGetMappedRangeArgs {
buffer_rid: ResourceId,
offset: u64,
- size: u64,
+ size: Option<u64>,
}
pub fn op_webgpu_buffer_get_mapped_range(
@@ -179,21 +179,22 @@ pub fn op_webgpu_buffer_get_mapped_range(
.ok_or_else(bad_resource_id)?;
let buffer = buffer_resource.0;
- let slice_pointer = gfx_select!(buffer => instance.buffer_get_mapped_range(
- buffer,
- args.offset,
- std::num::NonZeroU64::new(args.size)
- ))
- .map_err(|e| DomExceptionOperationError::new(&e.to_string()))?;
+ let (slice_pointer, range_size) =
+ gfx_select!(buffer => instance.buffer_get_mapped_range(
+ buffer,
+ args.offset,
+ std::num::NonZeroU64::new(args.size.unwrap_or(0))
+ ))
+ .map_err(|e| DomExceptionOperationError::new(&e.to_string()))?;
let slice = unsafe {
- std::slice::from_raw_parts_mut(slice_pointer, args.size as usize)
+ std::slice::from_raw_parts_mut(slice_pointer, range_size as usize)
};
zero_copy.copy_from_slice(slice);
let rid = state
.resource_table
- .add(WebGpuBufferMapped(slice_pointer, args.size as usize));
+ .add(WebGpuBufferMapped(slice_pointer, range_size as usize));
Ok(WebGpuResult::rid(rid))
}