fixing compute shared atomic memory, fixing vertex/fragment payloads, implementing early fragment depth tests
Test / build_and_test (push) Successful in 2m9s
Build / build (push) Successful in 2m35s

This commit is contained in:
2026-06-29 14:31:31 +02:00
parent 7c6e0dc2a8
commit 14ce2c6f9b
13 changed files with 256 additions and 50 deletions
+7 -1
View File
@@ -101,7 +101,9 @@ fn writeDescriptorValue(value: anytype, payload: DescriptorPayload, descriptor_i
};
switch (payload) {
.raw => |data| _ = try dst.write(data),
.raw => |data| {
_ = try dst.write(data);
},
.sampled_image => |data| switch (dst.*) {
.Image => _ = try dst.write(std.mem.asBytes(&data.image)),
.Sampler => _ = try dst.write(std.mem.asBytes(&data.sampler)),
@@ -144,6 +146,10 @@ pub fn writeDescriptorSets(state: *PipelineState, rt: *spv.Runtime) !void {
switch (binding) {
.buffer => |buffer_data_array| for (buffer_data_array, 0..) |buffer_data, descriptor_index| {
if (buffer_data.object) |buffer| {
const memory = buffer.interface.memory orelse continue;
if (@intFromPtr(memory.vtable) == 0)
continue;
const binding_layout = set.?.interface.layout.bindings[binding_index];
const dynamic_offset: vk.DeviceSize = switch (binding_layout.descriptor_type) {
.uniform_buffer_dynamic,