Actual deleak, debug object names

This commit is contained in:
2025-11-29 00:28:32 +01:00
parent 81a56f393e
commit 493937f870
8 changed files with 123 additions and 6 deletions

View File

@@ -67,6 +67,7 @@ pub const InitInfo = struct {
height: u32,
usage: Usage,
target_queue: TargetQueue,
name: ?[]const u8 = null,
};
image: vk.Image,
@@ -111,10 +112,16 @@ pub fn init(engine: *Engine, init_info: InitInfo) !Texture {
.initial_layout = .undefined,
});
errdefer engine.destroyImage(image);
if (init_info.name) |name| {
engine.setObjectName(image, "I {s} [{s}]", .{ name, @tagName(init_info.usage) });
}
const memory_requirements = engine.device.getImageMemoryRequirements(image);
const device_memory = try engine.allocate(memory_requirements, .{ .device_local_bit = true });
errdefer engine.freeMemory(device_memory);
if (init_info.name) |name| {
engine.setObjectName(device_memory, "DM {s} [{s}]", .{ name, @tagName(init_info.usage) });
}
try engine.device.bindImageMemory(image, device_memory, 0);
@@ -134,6 +141,9 @@ pub fn init(engine: *Engine, init_info: InitInfo) !Texture {
},
});
errdefer engine.destroyImageView(image_view);
if (init_info.name) |name| {
engine.setObjectName(image_view, "IV {s} [{s}]", .{ name, @tagName(init_info.usage) });
}
return .{
.image = image,