gpu: implement ComputePassEncoder .setPipeline, .writeTimestamp
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
7525f088c3
commit
387c10e175
2 changed files with 26 additions and 4 deletions
|
|
@ -1,4 +1,6 @@
|
||||||
const ComputePassTimestampWrite = @import("structs.zig").ComputePassTimestampWrite;
|
const ComputePassTimestampWrite = @import("structs.zig").ComputePassTimestampWrite;
|
||||||
|
const ComputePipeline = @import("ComputePipeline.zig");
|
||||||
|
const QuerySet = @import("QuerySet.zig");
|
||||||
|
|
||||||
const ComputePassEncoder = @This();
|
const ComputePassEncoder = @This();
|
||||||
|
|
||||||
|
|
@ -21,10 +23,8 @@ pub const VTable = struct {
|
||||||
// setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: []u32) void,
|
// setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: []u32) void,
|
||||||
// WGPU_EXPORT void wgpuComputePassEncoderSetBindGroup(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPUBindGroup group, uint32_t dynamicOffsetCount, uint32_t const * dynamicOffsets);
|
// WGPU_EXPORT void wgpuComputePassEncoderSetBindGroup(WGPUComputePassEncoder computePassEncoder, uint32_t groupIndex, WGPUBindGroup group, uint32_t dynamicOffsetCount, uint32_t const * dynamicOffsets);
|
||||||
setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void,
|
setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void,
|
||||||
// setPipeline: fn (ptr: *anyopaque, pipeline: ComputePipeline) void,
|
setPipeline: fn (ptr: *anyopaque, pipeline: ComputePipeline) void,
|
||||||
// WGPU_EXPORT void wgpuComputePassEncoderSetPipeline(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline);
|
writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void,
|
||||||
// writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void,
|
|
||||||
// WGPU_EXPORT void wgpuComputePassEncoderWriteTimestamp(WGPUComputePassEncoder computePassEncoder, WGPUQuerySet querySet, uint32_t queryIndex);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pub inline fn reference(enc: ComputePassEncoder) void {
|
pub inline fn reference(enc: ComputePassEncoder) void {
|
||||||
|
|
@ -55,6 +55,14 @@ pub inline fn setLabel(enc: ComputePassEncoder, label: [:0]const u8) void {
|
||||||
enc.vtable.setLabel(enc.ptr, label);
|
enc.vtable.setLabel(enc.ptr, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub inline fn setPipeline(enc: ComputePassEncoder, pipeline: ComputePipeline) void {
|
||||||
|
enc.vtable.setPipeline(enc.ptr, pipeline);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub inline fn writeTimestamp(enc: ComputePassEncoder, query_set: QuerySet, query_index: u32) void {
|
||||||
|
enc.vtable.writeTimestamp(enc.ptr, query_set, query_index);
|
||||||
|
}
|
||||||
|
|
||||||
pub const Descriptor = struct {
|
pub const Descriptor = struct {
|
||||||
label: ?[*:0]const u8 = null,
|
label: ?[*:0]const u8 = null,
|
||||||
timestamp_writes: []const ComputePassTimestampWrite,
|
timestamp_writes: []const ComputePassTimestampWrite,
|
||||||
|
|
|
||||||
|
|
@ -1635,6 +1635,20 @@ const compute_pass_encoder_vtable = ComputePassEncoder.VTable{
|
||||||
c.wgpuComputePassEncoderPushDebugGroup(@ptrCast(c.WGPUComputePassEncoder, ptr), group_label);
|
c.wgpuComputePassEncoderPushDebugGroup(@ptrCast(c.WGPUComputePassEncoder, ptr), group_label);
|
||||||
}
|
}
|
||||||
}).pushDebugGroup,
|
}).pushDebugGroup,
|
||||||
|
.setPipeline = (struct {
|
||||||
|
pub fn setPipeline(ptr: *anyopaque, pipeline: ComputePipeline) void {
|
||||||
|
c.wgpuComputePassEncoderSetPipeline(@ptrCast(c.WGPUComputePassEncoder, ptr), @ptrCast(c.WGPUComputePipeline, pipeline.ptr));
|
||||||
|
}
|
||||||
|
}).setPipeline,
|
||||||
|
.writeTimestamp = (struct {
|
||||||
|
pub fn writeTimestamp(ptr: *anyopaque, query_set: QuerySet, query_index: u32) void {
|
||||||
|
c.wgpuComputePassEncoderWriteTimestamp(
|
||||||
|
@ptrCast(c.WGPUComputePassEncoder, ptr),
|
||||||
|
@ptrCast(c.WGPUQuerySet, query_set.ptr),
|
||||||
|
query_index,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}).writeTimestamp,
|
||||||
};
|
};
|
||||||
|
|
||||||
fn wrapComputePipeline(pipeline: c.WGPUComputePipeline) ComputePipeline {
|
fn wrapComputePipeline(pipeline: c.WGPUComputePipeline) ComputePipeline {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue