gpu: add BindGroupEntry

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-03-11 15:09:13 -07:00 committed by Stephen Gutekanst
parent fd48c830e1
commit a541bf4fa1
4 changed files with 35 additions and 11 deletions

View file

@ -187,16 +187,6 @@ typedef struct WGPURenderPipelineDescriptor {
typedef struct WGPUBindGroupEntry {
WGPUChainedStruct const * nextInChain;
uint32_t binding;
WGPUBuffer buffer;
uint64_t offset;
uint64_t size;
WGPUSampler sampler;
WGPUTextureView textureView;
} WGPUBindGroupEntry;
typedef struct WGPUBufferBindingLayout {
WGPUChainedStruct const * nextInChain;
WGPUBufferBindingType type;

View file

@ -4,6 +4,8 @@ const BlendOperation = @import("enums.zig").BlendOperation;
const BlendFactor = @import("enums.zig").BlendFactor;
const CompareFunction = @import("enums.zig").CompareFunction;
const StencilOperation = @import("enums.zig").StencilOperation;
const VertexFormat = @import("enums.zig").VertexFormat;
const VertexStepMode = @import("enums.zig").VertexStepMode;
// TODO: docs
pub const Limits = extern struct {
@ -84,3 +86,15 @@ pub const VertexBufferLayout = extern struct {
attribute_count: u32,
attributes: *const VertexAttribute,
};
test "syntax" {
_ = Limits;
_ = Color;
_ = Extent3D;
_ = Origin3D;
_ = StencilFaceState;
_ = VertexAttribute;
_ = BlendComponent;
_ = BlendState;
_ = VertexBufferLayout;
}

View file

@ -74,7 +74,7 @@ pub const CommandEncoder = @import("CommandEncoder.zig");
pub const ComputePassEncoder = @import("ComputePassEncoder.zig");
pub const ComputePipeline = @import("ComputePipeline.zig");
// Data structures
// Data structures ABI-compatible with webgpu.h
pub const Limits = @import("data.zig").Limits;
pub const Color = @import("data.zig").Color;
pub const Extent3D = @import("data.zig").Extent3D;
@ -85,6 +85,9 @@ pub const BlendComponent = @import("data.zig").BlendComponent;
pub const BlendState = @import("data.zig").BlendState;
pub const VertexBufferLayout = @import("data.zig").VertexBufferLayout;
// Data structures not ABI-compatible with webgpu.h
pub const BindGroupEntry = @import("structs.zig").BindGroupEntry;
// Enumerations
pub const Feature = @import("enums.zig").Feature;
pub const TextureUsage = @import("enums.zig").TextureUsage;

17
gpu/src/structs.zig Normal file
View file

@ -0,0 +1,17 @@
//! Structures which are not ABI compatible with webgpu.h
const Buffer = @import("Buffer.zig");
const Sampler = @import("Sampler.zig");
const TextureView = @import("TextureView.zig");
pub const BindGroupEntry = struct {
binding: u32,
buffer: Buffer,
offset: u64,
size: u64,
sampler: Sampler,
texture_view: TextureView,
};
test "syntax" {
_ = BindGroupEntry;
}