improving descriptor sets push to shaders
Test / build_and_test (push) Successful in 35s
Build / build (push) Successful in 1m16s

This commit is contained in:
2026-05-18 19:54:09 +02:00
parent 3c9a864240
commit 9e4221affb
9 changed files with 130 additions and 117 deletions
+30 -6
View File
@@ -98,18 +98,42 @@ pub fn create(device: *base.Device, allocator: std.mem.Allocator, layout: *base.
.uniform_buffer,
.storage_buffer,
.storage_buffer_dynamic,
=> descriptor.* = .{
.buffer = local_allocator.alloc(DescriptorBuffer, binding.array_size) catch return VkError.OutOfHostMemory,
=> descriptor.* = blk: {
const desc: Descriptor = .{
.buffer = local_allocator.alloc(DescriptorBuffer, binding.array_size) catch return VkError.OutOfHostMemory,
};
for (desc.buffer[0..]) |*d| {
d.* = .{
.object = null,
.offset = 0,
.size = 0,
};
}
break :blk desc;
},
.storage_image,
.input_attachment,
=> descriptor.* = .{
.image = local_allocator.alloc(DescriptorImage, binding.array_size) catch return VkError.OutOfHostMemory,
=> descriptor.* = blk: {
const desc: Descriptor = .{
.image = local_allocator.alloc(DescriptorImage, binding.array_size) catch return VkError.OutOfHostMemory,
};
for (desc.image[0..]) |*d| {
d.* = .{ .object = null };
}
break :blk desc;
},
.storage_texel_buffer,
.uniform_texel_buffer,
=> descriptor.* = .{
.texel_buffer = local_allocator.alloc(DescriptorTexel, binding.array_size) catch return VkError.OutOfHostMemory,
=> descriptor.* = blk: {
const desc: Descriptor = .{
.texel_buffer = local_allocator.alloc(DescriptorTexel, binding.array_size) catch return VkError.OutOfHostMemory,
};
for (desc.texel_buffer[0..]) |*d| {
d.* = .{ .object = null };
}
break :blk desc;
},
else => {},
}