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 {
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);
var pci = std.mem.zeroes(gpu.GPUGraphicsPipelineCreateInfo);
@ -149,7 +149,7 @@ pub const Renderer = struct {
// todo.. sparse uploads
self.ssboScene = self.device.createGPUBuffer(&.{
.usage = .{ .bufferusageGraphicsStorageRead = true },
.usage = .{ .bufferusageGraphicsStorageRead = true, .bufferusageVertex = true },
.size = MaxObjectCount * @sizeOf(meshes_vert.Scene),
.props = 0,
});
@ -205,7 +205,7 @@ pub const Renderer = struct {
self.testPipeline = self.device.createGPUGraphicsPipeline(&pci);
self.colorBuffer = self.device.createGPUBuffer(&.{
.usage = .{ .bufferusageVertex = true },
.usage = .{ .bufferusageVertex = true, .bufferusageGraphicsStorageRead = true },
.size = 8192 * 2,
.props = 0,
});
@ -277,7 +277,6 @@ pub const Renderer = struct {
// map and upload Uniforms here
const copyPass = cmd.beginGPUCopyPass();
defer copyPass.endGPUCopyPass();
copyPass.uploadToGPUBuffer(&.{ .transfer_buffer = self.colorBufferTransfer, .offset = 0 }, &.{
.buffer = self.colorBuffer,
.offset = 0,
@ -288,6 +287,7 @@ pub const Renderer = struct {
upload.func(upload.ptr, copyPass);
}
copyPass.endGPUCopyPass();
if (!cmd.submitGPUCommandBuffer()) {
core.graphics_log("submit gpu command buffer SDL ERROR: {s}", .{sdl3.getError()});
}