diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index c3318037..28b74be8 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -879,10 +879,10 @@ const queue_vtable = Queue.VTable{ } }).release, .submit = (struct { - pub fn submit(queue: Queue, cmds: []const CommandBuffer) void { + pub fn submit(queue: *Queue, cmds: []const CommandBuffer) void { const wgpu_queue = @ptrCast(c.WGPUQueue, queue.ptr); - if (queue.on_submitted_work_done) |on_submitted_work_done| { + if (queue.on_submitted_work_done) |_| { // Note: signalValue is not available in the web API, and it's usage is undocumented // kainino says "It's basically reserved for future use, though it's been suggested // to remove it instead" @@ -898,8 +898,12 @@ const queue_vtable = Queue.VTable{ } }).cCallback; - var mut_on_submitted_work_done = on_submitted_work_done; - c.wgpuQueueOnSubmittedWorkDone(wgpu_queue, signal_value, cCallback, &mut_on_submitted_work_done); + c.wgpuQueueOnSubmittedWorkDone( + wgpu_queue, + signal_value, + cCallback, + &queue.on_submitted_work_done, + ); } var few_commands: [16]c.WGPUCommandBuffer = undefined; diff --git a/gpu/src/Queue.zig b/gpu/src/Queue.zig index ca2a0349..3c4e0f2c 100644 --- a/gpu/src/Queue.zig +++ b/gpu/src/Queue.zig @@ -20,7 +20,7 @@ pub const VTable = struct { release: fn (ptr: *anyopaque) void, // TODO: dawn specific? // copyTextureForBrowser: fn (ptr: *anyopaque, source: *const ImageCopyTexture, destination: *const ImageCopyTexture, copy_size: *const Extent3D, options: *const CopyTextureForBrowserOptions) void, - submit: fn (queue: Queue, commands: []const CommandBuffer) void, + submit: fn (queue: *Queue, commands: []const CommandBuffer) void, writeBuffer: fn ( ptr: *anyopaque, buffer: Buffer, @@ -46,7 +46,7 @@ pub inline fn release(queue: Queue) void { queue.vtable.release(queue.ptr); } -pub inline fn submit(queue: Queue, commands: []const CommandBuffer) void { +pub inline fn submit(queue: *Queue, commands: []const CommandBuffer) void { queue.vtable.submit(queue, commands); }