From 98063d241d0dbd569dbdc2ee16a03084e5439eae Mon Sep 17 00:00:00 2001 From: luccie-cmd Date: Sun, 16 Mar 2025 23:04:18 +0100 Subject: Add documentation for Instance.create() Signed-off-by: luccie-cmd --- src/render/vulkan.zig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/render/vulkan.zig b/src/render/vulkan.zig index 5b1498b..fde3e30 100644 --- a/src/render/vulkan.zig +++ b/src/render/vulkan.zig @@ -73,11 +73,14 @@ pub const Instance = struct { pub fn create(allocator: Allocator) !Instance { const extensions = window.getExtensions(); + // Querry avaliable extensions size var avaliableExtensionsCount: u32 = 0; _ = c.vkEnumerateInstanceExtensionProperties(null, &avaliableExtensionsCount, null); + // Actually querry avaliable extensions var availableExtensions = std.ArrayList(c.VkExtensionProperties).init(allocator); try availableExtensions.resize(avaliableExtensionsCount); _ = c.vkEnumerateInstanceExtensionProperties(null, &avaliableExtensionsCount, availableExtensions.items.ptr); + // Check the extensions we want against the extensions the user has for(extensions) |need_ext| { var found = false; for(availableExtensions.items) |useable_ext| { @@ -93,12 +96,16 @@ pub const Instance = struct { } availableExtensions.deinit(); + // Querry avaliable layers size var avaliableLayersCount: u32 = 0; _ = c.vkEnumerateInstanceLayerProperties(&avaliableLayersCount, null); + // Actually querry avaliable layers var availableLayers = std.ArrayList(c.VkLayerProperties).init(allocator); try availableLayers.resize(avaliableLayersCount); _ = c.vkEnumerateInstanceLayerProperties(&avaliableLayersCount, availableLayers.items.ptr); + // Every layer we do have we add to this list, if we don't have it no worries just print a message and continue var newLayers = std.ArrayList([*c]const u8).init(allocator); + // Loop over layers we want for(validation_layers) |want_layer| { var found = false; for(availableLayers.items) |useable_validation| { -- cgit v1.2.3