mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-02-16 17:02:32 +00:00
fix: zeroable buffer_get_mapped_range size
According to spec, size can be Some(0).
This commit is contained in:
parent
8895e28836
commit
751aa714f4
@ -128,7 +128,7 @@ impl Test<'_> {
|
||||
println!("\t\t\tChecking {}", expect.name);
|
||||
let buffer = wgc::id::TypedId::zip(expect.buffer.index, expect.buffer.epoch, backend);
|
||||
let (ptr, size) =
|
||||
wgc::gfx_select!(device => global.buffer_get_mapped_range(buffer, expect.offset, wgt::BufferSize::new(expect.data.len() as wgt::BufferAddress)))
|
||||
wgc::gfx_select!(device => global.buffer_get_mapped_range(buffer, expect.offset, Some(expect.data.len() as wgt::BufferAddress)))
|
||||
.unwrap();
|
||||
let contents = unsafe { slice::from_raw_parts(ptr, size as usize) };
|
||||
let expected_data = match expect.data {
|
||||
|
@ -26,9 +26,7 @@ use hal::{
|
||||
};
|
||||
use parking_lot::{Mutex, MutexGuard};
|
||||
use thiserror::Error;
|
||||
use wgt::{
|
||||
BufferAddress, BufferSize, InputStepMode, TextureDimension, TextureFormat, TextureViewDimension,
|
||||
};
|
||||
use wgt::{BufferAddress, InputStepMode, TextureDimension, TextureFormat, TextureViewDimension};
|
||||
|
||||
use std::{
|
||||
borrow::Cow,
|
||||
@ -4685,7 +4683,7 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
|
||||
&self,
|
||||
buffer_id: id::BufferId,
|
||||
offset: BufferAddress,
|
||||
size: Option<BufferSize>,
|
||||
size: Option<BufferAddress>,
|
||||
) -> Result<(*mut u8, u64), resource::BufferAccessError> {
|
||||
profiling::scope!("get_mapped_range", "Buffer");
|
||||
|
||||
@ -4697,7 +4695,7 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
|
||||
.map_err(|_| resource::BufferAccessError::Invalid)?;
|
||||
|
||||
let range_size = if let Some(size) = size {
|
||||
size.into()
|
||||
size
|
||||
} else if offset > buffer.size {
|
||||
0
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user