Actual deleak, debug object names
This commit is contained in:
22
src/Game.zig
22
src/Game.zig
@@ -226,6 +226,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
},
|
||||
});
|
||||
errdefer engine.destroyDescriptorSetLayout(global_descriptor_set_layout);
|
||||
engine.setObjectName(global_descriptor_set_layout, "DSL Global", .{});
|
||||
|
||||
const per_batch_descriptor_set_layout = try engine.createDescriptorSetLayout(.{
|
||||
.bindings = &.{
|
||||
@@ -238,6 +239,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
},
|
||||
});
|
||||
errdefer engine.destroyDescriptorSetLayout(per_batch_descriptor_set_layout);
|
||||
engine.setObjectName(per_batch_descriptor_set_layout, "DSL PerBatch", .{});
|
||||
|
||||
const pipeline_layout = try engine.createPipelineLayout(.{
|
||||
.set_layouts = &.{
|
||||
@@ -246,17 +248,21 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
},
|
||||
});
|
||||
errdefer engine.destroyPipelineLayout(pipeline_layout);
|
||||
engine.setObjectName(pipeline_layout, "PL", .{});
|
||||
|
||||
const vertex_shader = try engine.createShaderModule(.{ .code = &main_vert_spv });
|
||||
defer engine.destroyShaderModule(vertex_shader);
|
||||
engine.setObjectName(vertex_shader, "SM main_vert", .{});
|
||||
|
||||
const fragment_shader = try engine.createShaderModule(.{ .code = &main_frag_spv });
|
||||
defer engine.destroyShaderModule(fragment_shader);
|
||||
engine.setObjectName(fragment_shader, "SM main_frag", .{});
|
||||
|
||||
var vertex_buffer = try VertexBuffer.init(engine, .{
|
||||
.usage = .vertex,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = 4,
|
||||
.name = "QuadVB",
|
||||
});
|
||||
errdefer vertex_buffer.deinit(engine);
|
||||
try vertex_buffer.write(engine, .{
|
||||
@@ -292,6 +298,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
.usage = .index,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = 6,
|
||||
.name = "QuadIB",
|
||||
});
|
||||
errdefer index_buffer.deinit(engine);
|
||||
try index_buffer.write(engine, .{
|
||||
@@ -301,6 +308,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
var global_uniforms = try GlobalUniformsBuffer.init(engine, .{
|
||||
.usage = .uniform,
|
||||
.target_queue = .graphics,
|
||||
.name = "GlobalUniforms",
|
||||
});
|
||||
errdefer global_uniforms.deinit(engine);
|
||||
|
||||
@@ -333,8 +341,10 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
|
||||
errdefer for (semaphores.items) |x| engine.destroySemaphore(x);
|
||||
|
||||
for (0..swapchain.swapchain_images.len) |_| {
|
||||
semaphores.appendAssumeCapacity(try engine.createSemaphore());
|
||||
for (0..swapchain.swapchain_images.len) |i| {
|
||||
const semaphore = try engine.createSemaphore();
|
||||
engine.setObjectName(semaphore, "S Transfer[{d}]", .{i});
|
||||
semaphores.appendAssumeCapacity(semaphore);
|
||||
}
|
||||
|
||||
break :blk try semaphores.toOwnedSlice(allocator);
|
||||
@@ -346,13 +356,11 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
allocator.free(global_uniforms_transfer_semaphores);
|
||||
}
|
||||
|
||||
const global_uniforms_transfer_semaphore = try engine.createSemaphore();
|
||||
errdefer engine.destroySemaphore(global_uniforms_transfer_semaphore);
|
||||
|
||||
var point_lights = try PointLightBuffer.init(engine, .{
|
||||
.usage = .storage,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = max_point_lights,
|
||||
.name = "PointLights",
|
||||
});
|
||||
errdefer point_lights.deinit(engine);
|
||||
|
||||
@@ -360,6 +368,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
.usage = .storage,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = max_directional_lights,
|
||||
.name = "DirectionalLights",
|
||||
});
|
||||
errdefer directional_lights.deinit(engine);
|
||||
|
||||
@@ -479,6 +488,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
.subpass = 0,
|
||||
});
|
||||
errdefer engine.destroyPipeline(pipeline);
|
||||
engine.setObjectName(pipeline, "P", .{});
|
||||
|
||||
const descriptor_pool = try engine.createDescriptorPool(.{
|
||||
.max_sets = 1 + 256,
|
||||
@@ -502,12 +512,14 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
},
|
||||
});
|
||||
errdefer engine.destroyDescriptorPool(descriptor_pool);
|
||||
engine.setObjectName(descriptor_pool, "DP", .{});
|
||||
|
||||
const global_descriptor_set = try engine.allocateDescriptorSet(.{
|
||||
.descriptor_pool = descriptor_pool,
|
||||
.set_layout = global_descriptor_set_layout,
|
||||
.variable_descriptor_count = @intCast(textures.textures.items.len),
|
||||
});
|
||||
engine.setObjectName(global_descriptor_set, "DS Global", .{});
|
||||
|
||||
const descriptor_images = try allocator.alloc(vk.DescriptorImageInfo, textures.textures.items.len);
|
||||
for (textures.textures.items, descriptor_images) |texture, *info| {
|
||||
|
||||
Reference in New Issue
Block a user