Skip to content

Commit 4727be6

Browse files
WIP: diag(core): unify msgs. b/w buffer overrun error cases
1 parent 802ffe0 commit 4727be6

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,
@@ -1001,7 +1002,7 @@ pub(super) fn copy_buffer_to_buffer(
10011002

10021003
if source_offset > src_buffer.size {
10031004
return Err(TransferError::BufferStartOffsetOverrun {
1004-
start_offset: source_offset,
1005+
offset: source_offset,
10051006
buffer_size: src_buffer.size,
10061007
side: CopySide::Source,
10071008
}
@@ -1044,8 +1045,8 @@ pub(super) fn copy_buffer_to_buffer(
10441045
}
10451046

10461047
if size > src_buffer.size - source_offset {
1047-
return Err(TransferError::BufferOverrun {
1048-
start_offset: source_offset,
1048+
return Err(TransferError::BufferEndOffsetOverrun {
1049+
offset: source_offset,
10491050
size,
10501051
buffer_size: src_buffer.size,
10511052
side: CopySide::Source,
@@ -1057,16 +1058,16 @@ pub(super) fn copy_buffer_to_buffer(
10571058

10581059
if destination_offset > dst_buffer.size {
10591060
return Err(TransferError::BufferStartOffsetOverrun {
1060-
start_offset: destination_offset,
1061+
offset: destination_offset,
10611062
buffer_size: dst_buffer.size,
10621063
side: CopySide::Destination,
10631064
}
10641065
.into());
10651066
}
10661067
// NOTE: Should never underflow because of our earlier check.
10671068
if size > dst_buffer.size - destination_offset {
1068-
return Err(TransferError::BufferOverrun {
1069-
start_offset: destination_offset,
1069+
return Err(TransferError::BufferEndOffsetOverrun {
1070+
offset: destination_offset,
10701071
size,
10711072
buffer_size: dst_buffer.size,
10721073
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,
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)