Skip to content

Commit 1fe9233

Browse files
WIP: diag(core): unify msgs. b/w buffer overrun error cases
1 parent d083663 commit 1fe9233

2 files changed

Lines changed: 20 additions & 19 deletions

File tree

wgpu-core/src/command/transfer.rs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,20 @@ pub enum TransferError {
4747
MissingBufferUsage(#[from] MissingBufferUsageError),
4848
#[error(transparent)]
4949
MissingTextureUsage(#[from] MissingTextureUsageError),
50-
#[error(
51-
"Copy at offset {start_offset} bytes would end up overrunning the bounds of the {side:?} buffer of size {buffer_size}"
52-
)]
50+
#[error("Start offset ({offset}) is out-of-bounds for buffer of size {buffer_size}")]
5351
BufferStartOffsetOverrun {
54-
start_offset: BufferAddress,
52+
offset: BufferAddress,
5553
buffer_size: BufferAddress,
5654
side: CopySide,
5755
},
5856
#[error(
59-
"Copy at offset {start_offset} for {size} bytes would end up overrunning the bounds of the {side:?} buffer of size {buffer_size}"
57+
"End offset (start at {} + size of {}) is out-of-bounds for buffer of size {}",
58+
offset,
59+
size,
60+
buffer_size
6061
)]
61-
BufferOverrun {
62-
start_offset: BufferAddress,
62+
BufferEndOffsetOverrun {
63+
offset: BufferAddress,
6364
size: BufferAddress,
6465
buffer_size: BufferAddress,
6566
side: CopySide,
@@ -191,7 +192,7 @@ impl WebGpuError for TransferError {
191192
Self::MissingTextureUsage(e) => e,
192193
Self::MemoryInitFailure(e) => e,
193194

194-
Self::BufferOverrun { .. }
195+
Self::BufferEndOffsetOverrun { .. }
195196
| Self::TextureOverrun { .. }
196197
| Self::BufferStartOffsetOverrun { .. }
197198
| Self::UnsupportedPartialTransfer { .. }
@@ -360,8 +361,8 @@ pub(crate) fn validate_linear_texture_data(
360361
}
361362
// NOTE: Should never underflow because of our earlier check.
362363
if bytes_in_copy > buffer_size - offset {
363-
return Err(TransferError::BufferOverrun {
364-
start_offset: offset,
364+
return Err(TransferError::BufferEndOffsetOverrun {
365+
offset,
365366
size: bytes_in_copy,
366367
buffer_size,
367368
side: buffer_side,
@@ -1002,7 +1003,7 @@ pub(super) fn copy_buffer_to_buffer(
10021003
// TODO: This check isn't part of the spec., but it looks like it should be.
10031004
if source_offset > src_buffer.size {
10041005
return Err(TransferError::BufferStartOffsetOverrun {
1005-
start_offset: destination_offset,
1006+
offset: destination_offset,
10061007
buffer_size: dst_buffer.size,
10071008
side: CopySide::Destination,
10081009
}
@@ -1045,8 +1046,8 @@ pub(super) fn copy_buffer_to_buffer(
10451046
}
10461047

10471048
if size > src_buffer.size - source_offset {
1048-
return Err(TransferError::BufferOverrun {
1049-
start_offset: source_offset,
1049+
return Err(TransferError::BufferEndOffsetOverrun {
1050+
offset: source_offset,
10501051
size,
10511052
buffer_size: src_buffer.size,
10521053
side: CopySide::Source,
@@ -1060,16 +1061,16 @@ pub(super) fn copy_buffer_to_buffer(
10601061
// things in this order.
10611062
if destination_offset > dst_buffer.size {
10621063
return Err(TransferError::BufferStartOffsetOverrun {
1063-
start_offset: destination_offset,
1064+
offset: destination_offset,
10641065
buffer_size: dst_buffer.size,
10651066
side: CopySide::Destination,
10661067
}
10671068
.into());
10681069
}
10691070
// NOTE: Should never underflow because of our earlier check.
10701071
if size > dst_buffer.size - destination_offset {
1071-
return Err(TransferError::BufferOverrun {
1072-
start_offset: destination_offset,
1072+
return Err(TransferError::BufferEndOffsetOverrun {
1073+
offset: destination_offset,
10731074
size,
10741075
buffer_size: dst_buffer.size,
10751076
side: CopySide::Destination,

wgpu-core/src/device/queue.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -663,14 +663,14 @@ impl Queue {
663663

664664
if buffer_offset > buffer.size {
665665
return Err(TransferError::BufferStartOffsetOverrun {
666-
start_offset: buffer_offset,
666+
offset: buffer_offset,
667667
buffer_size: buffer_size.get(),
668668
side: CopySide::Destination,
669669
});
670670
}
671671
if buffer_size.get() > buffer.size - buffer_offset {
672-
return Err(TransferError::BufferOverrun {
673-
start_offset: buffer_offset,
672+
return Err(TransferError::BufferEndOffsetOverrun {
673+
offset: buffer_offset,
674674
size: buffer_size.get(),
675675
buffer_size: buffer.size,
676676
side: CopySide::Destination,

0 commit comments

Comments
 (0)