@@ -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 { .. }
@@ -353,8 +354,8 @@ pub(crate) fn validate_linear_texture_data(
353354
354355 // Avoid underflow in the subtraction by checking bytes_in_copy against buffer_size first.
355356 if bytes_in_copy > buffer_size || offset > buffer_size - bytes_in_copy {
356- return Err ( TransferError :: BufferOverrun {
357- start_offset : offset,
357+ return Err ( TransferError :: BufferEndOffsetOverrun {
358+ offset,
358359 size : bytes_in_copy,
359360 buffer_size,
360361 side : buffer_side,
@@ -995,7 +996,7 @@ pub(super) fn copy_buffer_to_buffer(
995996 // TODO: This check isn't part of the spec., but it looks like it should be.
996997 if source_offset >= src_buffer. size {
997998 return Err ( TransferError :: BufferStartOffsetOverrun {
998- start_offset : destination_offset,
999+ offset : destination_offset,
9991000 buffer_size : dst_buffer. size ,
10001001 side : CopySide :: Destination ,
10011002 }
@@ -1038,8 +1039,8 @@ pub(super) fn copy_buffer_to_buffer(
10381039 }
10391040
10401041 if size > src_buffer. size - source_offset {
1041- return Err ( TransferError :: BufferOverrun {
1042- start_offset : source_offset,
1042+ return Err ( TransferError :: BufferEndOffsetOverrun {
1043+ offset : source_offset,
10431044 size,
10441045 buffer_size : src_buffer. size ,
10451046 side : CopySide :: Source ,
@@ -1053,16 +1054,16 @@ pub(super) fn copy_buffer_to_buffer(
10531054 // things in this order.
10541055 if destination_offset >= dst_buffer. size {
10551056 return Err ( TransferError :: BufferStartOffsetOverrun {
1056- start_offset : destination_offset,
1057+ offset : destination_offset,
10571058 buffer_size : dst_buffer. size ,
10581059 side : CopySide :: Destination ,
10591060 }
10601061 . into ( ) ) ;
10611062 }
10621063 // NOTE: Should never underflow because of our earlier check.
10631064 if size > dst_buffer. size - destination_offset {
1064- return Err ( TransferError :: BufferOverrun {
1065- start_offset : destination_offset,
1065+ return Err ( TransferError :: BufferEndOffsetOverrun {
1066+ offset : destination_offset,
10661067 size,
10671068 buffer_size : dst_buffer. size ,
10681069 side : CopySide :: Destination ,
0 commit comments