@@ -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 ,
0 commit comments