gpu: fix writeBuffer data lengths

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-03-18 23:11:17 -07:00 committed by Stephen Gutekanst
parent eacee682ca
commit 67a0f60a68
2 changed files with 18 additions and 2 deletions

View file

@ -1,3 +1,5 @@
const std = @import("std");
const ComputePassEncoder = @import("ComputePassEncoder.zig");
const RenderPassEncoder = @import("RenderPassEncoder.zig");
const CommandBuffer = @import("CommandBuffer.zig");
@ -129,7 +131,13 @@ pub inline fn setLabel(enc: CommandEncoder, label: [:0]const u8) void {
}
pub inline fn writeBuffer(pass: RenderPassEncoder, buffer: Buffer, buffer_offset: u64, data: anytype) void {
pass.vtable.writeBuffer(pass.ptr, buffer, buffer_offset, @ptrCast(*const u8, &data[0]), @intCast(u64, data.len));
pass.vtable.writeBuffer(
pass.ptr,
buffer,
buffer_offset,
@ptrCast(*const u8, &data[0]),
@intCast(u64, data.len) * @sizeOf(@TypeOf(std.meta.Elem(data))),
);
}
pub inline fn writeTimestamp(pass: RenderPassEncoder, query_set: QuerySet, query_index: u32) void {

View file

@ -1,3 +1,5 @@
const std = @import("std");
const CommandBuffer = @import("CommandBuffer.zig");
const Buffer = @import("Buffer.zig");
@ -34,7 +36,13 @@ pub inline fn submit(queue: Queue, commands: []const CommandBuffer) void {
}
pub inline fn writeBuffer(queue: Queue, buffer: Buffer, buffer_offset: u64, data: anytype) void {
queue.vtable.writeBuffer(queue.ptr, buffer, buffer_offset, @ptrCast(*const anyopaque, &data[0]), @intCast(u64, data.len));
queue.vtable.writeBuffer(
queue.ptr,
buffer,
buffer_offset,
@ptrCast(*const anyopaque, &data[0]),
@intCast(u64, data.len) * @sizeOf(@TypeOf(std.meta.Elem(data))),
);
}
pub const WorkDoneCallback = struct {