From b24512b6cf7f5e6e65acf61309e096056a5f84d7 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Tue, 15 Mar 2022 23:47:18 -0700 Subject: [PATCH] gpu: implement RenderPassEncoder.pushDebugGroup Signed-off-by: Stephen Gutekanst --- gpu/src/NativeInstance.zig | 10 ++++++++++ gpu/src/RenderPassEncoder.zig | 21 +++++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index dc36dade..ba1453b2 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -979,6 +979,16 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{ c.wgpuRenderPassEncoderInsertDebugMarker(@ptrCast(c.WGPURenderPassEncoder, ptr), marker_label); } }).insertDebugMarker, + .popDebugGroup = (struct { + pub fn popDebugGroup(ptr: *anyopaque) void { + c.wgpuRenderPassEncoderPopDebugGroup(@ptrCast(c.WGPURenderPassEncoder, ptr)); + } + }).popDebugGroup, + .pushDebugGroup = (struct { + pub fn pushDebugGroup(ptr: *anyopaque, group_label: [*:0]const u8) void { + c.wgpuRenderPassEncoderPushDebugGroup(@ptrCast(c.WGPURenderPassEncoder, ptr), group_label); + } + }).pushDebugGroup, }; fn wrapRenderBundleEncoder(enc: c.WGPURenderBundleEncoder) RenderBundleEncoder { diff --git a/gpu/src/RenderPassEncoder.zig b/gpu/src/RenderPassEncoder.zig index c0cea981..a419a144 100644 --- a/gpu/src/RenderPassEncoder.zig +++ b/gpu/src/RenderPassEncoder.zig @@ -32,8 +32,8 @@ pub const VTable = struct { end: fn (ptr: *anyopaque) void, executeBundles: fn (ptr: *anyopaque, bundles: []RenderBundle) void, insertDebugMarker: fn (ptr: *anyopaque, marker_label: [*:0]const u8) void, - // WGPU_EXPORT void wgpuRenderPassEncoderPopDebugGroup(WGPURenderPassEncoder renderPassEncoder); - // WGPU_EXPORT void wgpuRenderPassEncoderPushDebugGroup(WGPURenderPassEncoder renderPassEncoder, char const * groupLabel); + popDebugGroup: fn (ptr: *anyopaque) void, + pushDebugGroup: fn (ptr: *anyopaque, group_label: [*:0]const u8) void, // WGPU_EXPORT void wgpuRenderPassEncoderSetBindGroup(WGPURenderPassEncoder renderPassEncoder, uint32_t groupIndex, WGPUBindGroup group, uint32_t dynamicOffsetCount, uint32_t const * dynamicOffsets); // WGPU_EXPORT void wgpuRenderPassEncoderSetBlendConstant(WGPURenderPassEncoder renderPassEncoder, WGPUColor const * color); // WGPU_EXPORT void wgpuRenderPassEncoderSetIndexBuffer(WGPURenderPassEncoder renderPassEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size); @@ -87,8 +87,8 @@ pub inline fn beginOcclusionQuery(pass: RenderPassEncoder, query_index: u32) voi pass.vtable.beginOcclusionQuery(pass.ptr, query_index); } -pub inline fn endOcclusionQuery(pass: RenderPassEncoder, query_index: u32) void { - pass.vtable.endOcclusionQuery(pass.ptr, query_index); +pub inline fn endOcclusionQuery(pass: RenderPassEncoder) void { + pass.vtable.endOcclusionQuery(pass.ptr); } pub inline fn end(pass: RenderPassEncoder) void { @@ -103,6 +103,14 @@ pub inline fn insertDebugMarker(pass: RenderPassEncoder, marker_label: [*:0]cons pass.vtable.insertDebugMarker(pass.ptr, marker_label); } +pub inline fn popDebugGroup(pass: RenderPassEncoder) void { + pass.vtable.popDebugGroup(pass.ptr); +} + +pub inline fn pushDebugGroup(pass: RenderPassEncoder, group_label: [*:0]const u8) void { + pass.vtable.pushDebugGroup(pass.ptr, group_label); +} + pub inline fn setLabel(pass: RenderPassEncoder, label: [:0]const u8) void { pass.vtable.setLabel(pass.ptr, label); } @@ -128,7 +136,12 @@ test { _ = drawIndexedIndirect; _ = drawIndirect; _ = beginOcclusionQuery; + _ = endOcclusionQuery; _ = end; + _ = executeBundles; + _ = insertDebugMarker; + _ = popDebugGroup; + _ = pushDebugGroup; _ = setLabel; _ = setPipeline; _ = Descriptor;