From 1bff7e5f3cbfc4ad6d745a5f5fbde6466659ad62 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Fri, 18 Mar 2022 16:04:16 -0700 Subject: [PATCH] gpu: implement Device.createErrorBuffer Signed-off-by: Stephen Gutekanst --- gpu/src/Device.zig | 8 ++++++-- gpu/src/NativeInstance.zig | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gpu/src/Device.zig b/gpu/src/Device.zig index f8fec286..fc334e18 100644 --- a/gpu/src/Device.zig +++ b/gpu/src/Device.zig @@ -40,8 +40,7 @@ pub const VTable = struct { descriptor: *const ComputePipeline.Descriptor, callback: *ComputePipeline.CreateCallback, ) void, - // createErrorBuffer: fn (ptr: *anyopaque) Buffer, - // WGPU_EXPORT WGPUBuffer wgpuDeviceCreateErrorBuffer(WGPUDevice device); + createErrorBuffer: fn (ptr: *anyopaque) Buffer, // createExternalTexture: fn (ptr: *anyopaque, descriptor: *const ExternalTexture.Descriptor) ExternalTexture, // WGPU_EXPORT WGPUExternalTexture wgpuDeviceCreateExternalTexture(WGPUDevice device, WGPUExternalTextureDescriptor const * externalTextureDescriptor); // createPipelineLayout: fn (ptr: *anyopaque, descriptor: *const PipelineLayout.Descriptor) PipelineLayout, @@ -149,6 +148,10 @@ pub inline fn createComputePipelineAsync( device.vtable.createComputePipelineAsync(device.ptr, descriptor, callback); } +pub inline fn createErrorBuffer(device: Device) Buffer { + return device.vtable.createErrorBuffer(device.ptr); +} + pub inline fn createRenderPipeline(device: Device, descriptor: *const RenderPipeline.Descriptor) RenderPipeline { return device.vtable.createRenderPipeline(device.ptr, descriptor); } @@ -191,6 +194,7 @@ test { _ = createCommandEncoder; _ = createComputePipeline; _ = createComputePipelineAsync; + _ = createErrorBuffer; _ = createRenderPipeline; _ = createRenderPipelineAsync; _ = tick; diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index 5d038ede..663bbf9d 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -504,6 +504,13 @@ const device_vtable = Device.VTable{ ); } }).createComputePipelineAsync, + .createErrorBuffer = (struct { + pub fn createErrorBuffer(ptr: *anyopaque) Buffer { + return wrapBuffer(c.wgpuDeviceCreateErrorBuffer( + @ptrCast(c.WGPUDevice, ptr), + )); + } + }).createErrorBuffer, .createRenderPipeline = (struct { pub fn createRenderPipeline(ptr: *anyopaque, descriptor: *const RenderPipeline.Descriptor) RenderPipeline { var tmp_depth_stencil: c.WGPUDepthStencilState = undefined;