Skip to content

Commit 2105e5c

Browse files
refactor(core): ArcCommand::WriteBuffer: serialize offset and size instead of start..end
1 parent c661ae2 commit 2105e5c

5 files changed

Lines changed: 18 additions & 12 deletions

File tree

player/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -377,19 +377,19 @@ impl Player {
377377
Action::WriteBuffer {
378378
id,
379379
data,
380-
range,
380+
offset,
381+
size,
381382
queued,
382383
} => {
383384
let buffer = self.resolve_buffer_id(id);
384385
let bin = loader.load(&data);
385-
let size = (range.end - range.start) as usize;
386386
if queued {
387387
queue
388-
.write_buffer(buffer, range.start, &bin)
388+
.write_buffer(buffer, offset, &bin)
389389
.expect("Queue::write_buffer error");
390390
} else {
391391
device
392-
.set_buffer_data(&buffer, range.start, &bin[..size])
392+
.set_buffer_data(&buffer, offset, &bin[..size.try_into().unwrap()])
393393
.expect("Device::set_buffer_data error");
394394
}
395395
}

wgpu-core/src/device/queue.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1613,12 +1613,13 @@ impl Global {
16131613
#[cfg(feature = "trace")]
16141614
if let Some(ref mut trace) = *queue.device.trace.lock() {
16151615
use crate::device::trace::DataKind;
1616-
let range = buffer_offset..buffer_offset + data.len() as u64;
1616+
let size = data.len() as u64;
16171617
let data = trace.make_binary(DataKind::Bin, data);
16181618
trace.add(Action::WriteBuffer {
16191619
id: buffer.to_trace(),
16201620
data,
1621-
range,
1621+
offset: buffer_offset,
1622+
size,
16221623
queued: true,
16231624
});
16241625
}

wgpu-core/src/device/trace.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ mod record;
33
#[cfg(feature = "replay")]
44
mod replay;
55

6-
use core::{convert::Infallible, ops::Range};
6+
use core::convert::Infallible;
77

88
use alloc::{string::String, vec::Vec};
99
use macro_rules_attribute::apply;
@@ -221,7 +221,8 @@ pub enum Action<'a, R: ReferenceType> {
221221
WriteBuffer {
222222
id: R::Buffer,
223223
data: Data,
224-
range: Range<wgt::BufferAddress>,
224+
offset: wgt::BufferAddress,
225+
size: wgt::BufferAddress,
225226
queued: bool,
226227
},
227228
WriteTexture {

wgpu-core/src/device/trace/record.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -893,12 +893,14 @@ fn action_to_owned(action: Action<'_, PointerReferences>) -> Action<'static, Poi
893893
A::WriteBuffer {
894894
id,
895895
data,
896-
range,
896+
offset,
897+
size,
897898
queued,
898899
} => A::WriteBuffer {
899900
id,
900901
data,
901-
range,
902+
offset,
903+
size,
902904
queued,
903905
},
904906
A::WriteTexture {

wgpu-core/src/resource.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,8 @@ impl Buffer {
823823
trace.add(trace::Action::WriteBuffer {
824824
id: self.to_trace(),
825825
data,
826-
range: 0..self.size,
826+
offset: 0,
827+
size: self.size,
827828
queued: true,
828829
});
829830
}
@@ -889,7 +890,8 @@ impl Buffer {
889890
trace.add(trace::Action::WriteBuffer {
890891
id: self.to_trace(),
891892
data,
892-
range: range.clone(),
893+
offset: range.start,
894+
size,
893895
queued: false,
894896
});
895897
}

0 commit comments

Comments
 (0)