From 054b9e95a5e646d29945d786309c1250edf047fa Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Wed, 16 Mar 2022 10:51:15 -0700 Subject: [PATCH] gpu: implement RenderPassEncoder.writeTimestamp Signed-off-by: Stephen Gutekanst --- gpu/src/NativeInstance.zig | 18 +++++++++--------- gpu/src/RenderPassEncoder.zig | 12 +++++------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index 995b99ca..89143fd1 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -1083,15 +1083,15 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{ ); } }).setViewport, - // .writeTimestamp = (struct { - // pub fn writeTimestamp(ptr: *anyopaque, query_set: QuerySet, query_index: u32) void { - // c.wgpuRenderPassEncoderWriteTimestamp( - // @ptrCast(c.WGPURenderPassEncoder, ptr), - // @ptrCast(c.WGPUQuerySet, query_set.ptr), - // query_index, - // ); - // } - // }).writeTimestamp, + .writeTimestamp = (struct { + pub fn writeTimestamp(ptr: *anyopaque, query_set: QuerySet, query_index: u32) void { + c.wgpuRenderPassEncoderWriteTimestamp( + @ptrCast(c.WGPURenderPassEncoder, ptr), + @ptrCast(c.WGPUQuerySet, query_set.ptr), + query_index, + ); + } + }).writeTimestamp, }; fn wrapRenderBundleEncoder(enc: c.WGPURenderBundleEncoder) RenderBundleEncoder { diff --git a/gpu/src/RenderPassEncoder.zig b/gpu/src/RenderPassEncoder.zig index 0c9b275f..aa323ab4 100644 --- a/gpu/src/RenderPassEncoder.zig +++ b/gpu/src/RenderPassEncoder.zig @@ -46,7 +46,7 @@ pub const VTable = struct { setStencilReference: fn (ptr: *anyopaque, reference: u32) void, setVertexBuffer: fn (ptr: *anyopaque, slot: u32, buffer: Buffer, offset: u64, size: u64) void, setViewport: fn (ptr: *anyopaque, x: f32, y: f32, width: f32, height: f32, min_depth: f32, max_depth: f32) void, - // writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void, + writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void, }; pub inline fn reference(pass: RenderPassEncoder) void { @@ -175,11 +175,9 @@ pub inline fn setViewport( pass.vtable.setViewport(pass.ptr, x, y, width, height, min_depth, max_depth); } -// pub inline fn writeTimestamp(pass: RenderPassEncoder, query_set: QuerySet, query_index: u32) void { -// pass.vtable.writeTimestamp(pass.ptr, query_set, query_index); -// } -// // writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void, -// // WGPU_EXPORT void wgpuRenderPassEncoderWriteTimestamp(WGPURenderPassEncoder renderPassEncoder, WGPUQuerySet querySet, uint32_t queryIndex); +pub inline fn writeTimestamp(pass: RenderPassEncoder, query_set: QuerySet, query_index: u32) void { + pass.vtable.writeTimestamp(pass.ptr, query_set, query_index); +} pub const Descriptor = struct { label: ?[*:0]const u8 = null, @@ -213,6 +211,6 @@ test { _ = setStencilReference; _ = setVertexBuffer; _ = setViewport; - // _ = writeTimestamp; + _ = writeTimestamp; _ = Descriptor; }