From f4a6e0835706f758a51958ca024f3ecf92be9b80 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Fri, 29 Jul 2022 23:51:13 -0700 Subject: [PATCH] gpu: internalize QuerySet types Signed-off-by: Stephen Gutekanst --- gpu/src/device.zig | 3 +-- gpu/src/interface.zig | 6 +++--- gpu/src/query_set.zig | 20 ++++++++++---------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/gpu/src/device.zig b/gpu/src/device.zig index 806cf942..b0ed6f45 100644 --- a/gpu/src/device.zig +++ b/gpu/src/device.zig @@ -8,7 +8,6 @@ const ComputePipeline = @import("compute_pipeline.zig").ComputePipeline; const ExternalTexture = @import("external_texture.zig").ExternalTexture; const PipelineLayout = @import("pipeline_layout.zig").PipelineLayout; const QuerySet = @import("query_set.zig").QuerySet; -const QuerySetDescriptor = @import("query_set.zig").QuerySetDescriptor; const RenderBundleEncoder = @import("render_bundle_encoder.zig").RenderBundleEncoder; const RenderBundleEncoderDescriptor = @import("render_bundle_encoder.zig").RenderBundleEncoderDescriptor; const RenderPipeline = @import("render_pipeline.zig").RenderPipeline; @@ -95,7 +94,7 @@ pub const Device = opaque { return Impl.deviceCreatePipelineLayout(device, pipeline_layout_descriptor); } - pub inline fn createQuerySet(device: *Device, descriptor: *const QuerySetDescriptor) *QuerySet { + pub inline fn createQuerySet(device: *Device, descriptor: *const QuerySet.Descriptor) *QuerySet { return Impl.deviceCreateQuerySet(device, descriptor); } diff --git a/gpu/src/interface.zig b/gpu/src/interface.zig index 4b438480..a148674d 100644 --- a/gpu/src/interface.zig +++ b/gpu/src/interface.zig @@ -89,7 +89,7 @@ pub fn Interface(comptime T: type) type { assertDecl(T, "deviceCreateErrorExternalTexture", fn (device: *gpu.Device) callconv(.Inline) *gpu.ExternalTexture); assertDecl(T, "deviceCreateExternalTexture", fn (device: *gpu.Device, external_texture_descriptor: *const gpu.ExternalTexture.Descriptor) callconv(.Inline) *gpu.ExternalTexture); assertDecl(T, "deviceCreatePipelineLayout", fn (device: *gpu.Device, pipeline_layout_descriptor: *const gpu.PipelineLayout.Descriptor) callconv(.Inline) *gpu.PipelineLayout); - assertDecl(T, "deviceCreateQuerySet", fn (device: *gpu.Device, descriptor: *const gpu.QuerySetDescriptor) callconv(.Inline) *gpu.QuerySet); + assertDecl(T, "deviceCreateQuerySet", fn (device: *gpu.Device, descriptor: *const gpu.QuerySet.Descriptor) callconv(.Inline) *gpu.QuerySet); assertDecl(T, "deviceCreateRenderBundleEncoder", fn (device: *gpu.Device, descriptor: *const gpu.RenderBundleEncoderDescriptor) callconv(.Inline) *gpu.RenderBundleEncoder); assertDecl(T, "deviceCreateRenderPipeline", fn (device: *gpu.Device, descriptor: *const gpu.RenderPipelineDescriptor) callconv(.Inline) *gpu.RenderPipeline); assertDecl(T, "deviceCreateRenderPipelineAsync", fn (device: *gpu.Device, descriptor: *const gpu.RenderPipelineDescriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: *anyopaque) callconv(.Inline) void); @@ -599,7 +599,7 @@ pub fn Export(comptime T: type) type { } // WGPU_EXPORT WGPUQuerySet wgpuDeviceCreateQuerySet(WGPUDevice device, WGPUQuerySetDescriptor const * descriptor); - export fn wgpuDeviceCreateQuerySet(device: *gpu.Device, descriptor: *const gpu.QuerySetDescriptor) *gpu.QuerySet { + export fn wgpuDeviceCreateQuerySet(device: *gpu.Device, descriptor: *const gpu.QuerySet.Descriptor) *gpu.QuerySet { return T.deviceCreateQuerySet(device, descriptor); } @@ -1677,7 +1677,7 @@ pub const StubInterface = Interface(struct { unreachable; } - pub inline fn deviceCreateQuerySet(device: *gpu.Device, descriptor: *const gpu.QuerySetDescriptor) *gpu.QuerySet { + pub inline fn deviceCreateQuerySet(device: *gpu.Device, descriptor: *const gpu.QuerySet.Descriptor) *gpu.QuerySet { _ = device; _ = descriptor; unreachable; diff --git a/gpu/src/query_set.zig b/gpu/src/query_set.zig index dbab843c..80fbbcbf 100644 --- a/gpu/src/query_set.zig +++ b/gpu/src/query_set.zig @@ -4,6 +4,16 @@ const QueryType = @import("types.zig").QueryType; const Impl = @import("interface.zig").Impl; pub const QuerySet = opaque { + pub const Descriptor = extern struct { + next_in_chain: ?*const ChainedStruct = null, + label: ?[*:0]const u8 = null, + type: QueryType, + count: u32, + // TODO: file a bug on Dawn, this is not marked as nullable but in fact is. + pipeline_statistics: ?[*]const PipelineStatisticName = null, + pipeline_statistics_count: u32 = 0, + }; + pub inline fn destroy(query_set: *QuerySet) void { Impl.querySetDestroy(query_set); } @@ -28,13 +38,3 @@ pub const QuerySet = opaque { Impl.querySetRelease(query_set); } }; - -pub const QuerySetDescriptor = extern struct { - next_in_chain: ?*const ChainedStruct = null, - label: ?[*:0]const u8 = null, - type: QueryType, - count: u32, - // TODO: file a bug on Dawn, this is not marked as nullable but in fact is. - pipeline_statistics: ?[*]const PipelineStatisticName = null, - pipeline_statistics_count: u32 = 0, -};