vertex buffer ssbos working
This commit is contained in:
parent
ff101925ff
commit
98fafa971a
|
|
@ -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()});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue