vertex buffer ssbos working

This commit is contained in:
Peter Li 2025-04-18 20:05:26 -07:00
parent ff101925ff
commit 98fafa971a
1 changed files with 4 additions and 4 deletions

View File

@ -106,7 +106,7 @@ pub const Renderer = struct {
} }
pub fn createMeshPipeline(self: *@This()) !void { pub fn createMeshPipeline(self: *@This()) !void {
const vertex = try self.loadShader("meshes.vert", sample_vert.LoadArgs); const vertex = try self.loadShader("meshes.vert", meshes_vert.LoadArgs);
const fragment = try self.loadShader("lit_mesh.frag", lit_mesh_frag.LoadArgs); const fragment = try self.loadShader("lit_mesh.frag", lit_mesh_frag.LoadArgs);
var pci = std.mem.zeroes(gpu.GPUGraphicsPipelineCreateInfo); var pci = std.mem.zeroes(gpu.GPUGraphicsPipelineCreateInfo);
@ -149,7 +149,7 @@ pub const Renderer = struct {
// todo.. sparse uploads // todo.. sparse uploads
self.ssboScene = self.device.createGPUBuffer(&.{ self.ssboScene = self.device.createGPUBuffer(&.{
.usage = .{ .bufferusageGraphicsStorageRead = true }, .usage = .{ .bufferusageGraphicsStorageRead = true, .bufferusageVertex = true },
.size = MaxObjectCount * @sizeOf(meshes_vert.Scene), .size = MaxObjectCount * @sizeOf(meshes_vert.Scene),
.props = 0, .props = 0,
}); });
@ -205,7 +205,7 @@ pub const Renderer = struct {
self.testPipeline = self.device.createGPUGraphicsPipeline(&pci); self.testPipeline = self.device.createGPUGraphicsPipeline(&pci);
self.colorBuffer = self.device.createGPUBuffer(&.{ self.colorBuffer = self.device.createGPUBuffer(&.{
.usage = .{ .bufferusageVertex = true }, .usage = .{ .bufferusageVertex = true, .bufferusageGraphicsStorageRead = true },
.size = 8192 * 2, .size = 8192 * 2,
.props = 0, .props = 0,
}); });
@ -277,7 +277,6 @@ pub const Renderer = struct {
// map and upload Uniforms here // map and upload Uniforms here
const copyPass = cmd.beginGPUCopyPass(); const copyPass = cmd.beginGPUCopyPass();
defer copyPass.endGPUCopyPass();
copyPass.uploadToGPUBuffer(&.{ .transfer_buffer = self.colorBufferTransfer, .offset = 0 }, &.{ copyPass.uploadToGPUBuffer(&.{ .transfer_buffer = self.colorBufferTransfer, .offset = 0 }, &.{
.buffer = self.colorBuffer, .buffer = self.colorBuffer,
.offset = 0, .offset = 0,
@ -288,6 +287,7 @@ pub const Renderer = struct {
upload.func(upload.ptr, copyPass); upload.func(upload.ptr, copyPass);
} }
copyPass.endGPUCopyPass();
if (!cmd.submitGPUCommandBuffer()) { if (!cmd.submitGPUCommandBuffer()) {
core.graphics_log("submit gpu command buffer SDL ERROR: {s}", .{sdl3.getError()}); core.graphics_log("submit gpu command buffer SDL ERROR: {s}", .{sdl3.getError()});
} }