From cbf066ade52e1c53db9934d1d63889b112e5006e Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Mon, 29 Apr 2024 18:29:41 -0700 Subject: [PATCH] {gfx,examples}: improve sysgpu compatibility with higher-level examples Signed-off-by: Stephen Gutekanst --- examples/custom-renderer/Renderer.zig | 5 ++++- src/gfx/SpritePipeline.zig | 21 +++++++++++++++++---- src/gfx/TextPipeline.zig | 1 + 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/examples/custom-renderer/Renderer.zig b/examples/custom-renderer/Renderer.zig index e409a8f7..0a2cba2f 100644 --- a/examples/custom-renderer/Renderer.zig +++ b/examples/custom-renderer/Renderer.zig @@ -79,7 +79,10 @@ fn init( .label = label, .layout = bind_group_layout, .entries = &.{ - gpu.BindGroup.Entry.buffer(0, uniform_buffer, uniform_offset * i, @sizeOf(UniformBufferObject)), + if (mach.use_sysgpu) + gpu.BindGroup.Entry.buffer(0, uniform_buffer, uniform_offset * i, @sizeOf(UniformBufferObject), @sizeOf(UniformBufferObject)) + else + gpu.BindGroup.Entry.buffer(0, uniform_buffer, uniform_offset * i, @sizeOf(UniformBufferObject)), }, }), ); diff --git a/src/gfx/SpritePipeline.zig b/src/gfx/SpritePipeline.zig index 479bea1b..a216acb6 100644 --- a/src/gfx/SpritePipeline.zig +++ b/src/gfx/SpritePipeline.zig @@ -249,10 +249,22 @@ fn buildPipeline( .label = label, .layout = bind_group_layout, .entries = &.{ - gpu.BindGroup.Entry.buffer(0, uniforms, 0, @sizeOf(Uniforms)), - gpu.BindGroup.Entry.buffer(1, transforms, 0, @sizeOf(math.Mat4x4) * sprite_buffer_cap), - gpu.BindGroup.Entry.buffer(2, uv_transforms, 0, @sizeOf(math.Mat3x3) * sprite_buffer_cap), - gpu.BindGroup.Entry.buffer(3, sizes, 0, @sizeOf(math.Vec2) * sprite_buffer_cap), + if (mach.use_sysgpu) + gpu.BindGroup.Entry.buffer(0, uniforms, 0, @sizeOf(Uniforms), @sizeOf(Uniforms)) + else + gpu.BindGroup.Entry.buffer(0, uniforms, 0, @sizeOf(Uniforms)), + if (mach.use_sysgpu) + gpu.BindGroup.Entry.buffer(1, transforms, 0, @sizeOf(math.Mat4x4) * sprite_buffer_cap, @sizeOf(math.Mat4x4)) + else + gpu.BindGroup.Entry.buffer(1, transforms, 0, @sizeOf(math.Mat4x4) * sprite_buffer_cap), + if (mach.use_sysgpu) + gpu.BindGroup.Entry.buffer(2, uv_transforms, 0, @sizeOf(math.Mat3x3) * sprite_buffer_cap, @sizeOf(math.Mat3x3)) + else + gpu.BindGroup.Entry.buffer(2, uv_transforms, 0, @sizeOf(math.Mat3x3) * sprite_buffer_cap), + if (mach.use_sysgpu) + gpu.BindGroup.Entry.buffer(3, sizes, 0, @sizeOf(math.Vec2) * sprite_buffer_cap, @sizeOf(math.Vec2)) + else + gpu.BindGroup.Entry.buffer(3, sizes, 0, @sizeOf(math.Vec2) * sprite_buffer_cap), gpu.BindGroup.Entry.sampler(4, texture_sampler), gpu.BindGroup.Entry.textureView(5, texture_view), gpu.BindGroup.Entry.textureView(6, texture2_view), @@ -261,6 +273,7 @@ fn buildPipeline( }, }), ); + defer bind_group.release(); const blend_state = opt_blend_state orelse gpu.BlendState{ .color = .{ diff --git a/src/gfx/TextPipeline.zig b/src/gfx/TextPipeline.zig index 32f3d8c6..e6994afd 100644 --- a/src/gfx/TextPipeline.zig +++ b/src/gfx/TextPipeline.zig @@ -287,6 +287,7 @@ fn buildPipeline( }, }), ); + defer bind_group.release(); const blend_state = opt_blend_state orelse gpu.BlendState{ .color = .{