diff --git a/gpu/src/CommandEncoder.zig b/gpu/src/CommandEncoder.zig index b2468575..421cd284 100644 --- a/gpu/src/CommandEncoder.zig +++ b/gpu/src/CommandEncoder.zig @@ -130,13 +130,13 @@ pub inline fn setLabel(enc: CommandEncoder, label: [:0]const u8) void { enc.vtable.setLabel(enc.ptr, label); } -pub inline fn writeBuffer(enc: CommandEncoder, buffer: Buffer, buffer_offset: u64, data: anytype) void { +pub inline fn writeBuffer(enc: CommandEncoder, buffer: Buffer, buffer_offset: u64, comptime T: type, data: []const T) void { enc.vtable.writeBuffer( enc.ptr, buffer, buffer_offset, @ptrCast([*]const u8, data.ptr), - @intCast(u64, data.len) * @sizeOf(std.meta.Elem(@TypeOf(data))), + @intCast(u64, data.len) * @sizeOf(T), ); } diff --git a/gpu/src/Queue.zig b/gpu/src/Queue.zig index c1c17f59..d8407c3a 100644 --- a/gpu/src/Queue.zig +++ b/gpu/src/Queue.zig @@ -50,13 +50,13 @@ pub inline fn submit(queue: Queue, commands: []const CommandBuffer) void { queue.vtable.submit(queue, commands); } -pub inline fn writeBuffer(queue: Queue, buffer: Buffer, buffer_offset: u64, data: anytype) void { +pub inline fn writeBuffer(queue: Queue, buffer: Buffer, buffer_offset: u64, comptime T: type, data: []const T) void { queue.vtable.writeBuffer( queue.ptr, buffer, buffer_offset, @ptrCast(*const anyopaque, data.ptr), - @intCast(u64, data.len) * @sizeOf(std.meta.Elem(@TypeOf(data))), + @intCast(u64, data.len) * @sizeOf(T), ); }