big architectural rework

This commit is contained in:
2025-11-04 00:11:15 +01:00
parent 4e9fdac9b7
commit 446ac9c1f0
13 changed files with 348 additions and 306 deletions

View File

@@ -1,13 +1,15 @@
const std = @import("std");
const vk = @import("vulkan");
pub const icd = @import("icd.zig");
pub const dispatchable = @import("dispatchable.zig");
pub const lib_vulkan = @import("lib_vulkan.zig");
pub const Dispatchable = @import("Dispatchable.zig").Dispatchable;
pub const VkError = @import("error_set.zig").VkError;
pub const Instance = @import("Instance.zig");
pub const PhysicalDevice = @import("PhysicalDevice.zig");
pub const VulkanAllocator = @import("VulkanAllocator.zig");
pub const Device = @import("Device.zig");
//pub const Device = @import("Device.zig");
pub const VULKAN_VENDOR_ID = @typeInfo(vk.VendorId).@"enum".fields[@typeInfo(vk.VendorId).@"enum".fields.len - 1].value + 1;
pub const DRIVER_LOGS_ENV_NAME = "DRIVER_LOGS";
@@ -36,17 +38,8 @@ pub fn retrieveDriverDataAs(handle: anytype, comptime T: type) !*T {
return @ptrCast(@alignCast(@field(handle, "driver_data")));
}
const global_pfn_map = std.StaticStringMap(vk.PfnVoidFunction).initComptime(.{
.{ "vkGetInstanceProcAddr", @as(vk.PfnVoidFunction, @ptrCast(&icd.getInstanceProcAddr)) },
.{ "vkCreateInstance", @as(vk.PfnVoidFunction, @ptrCast(&Instance.create)) },
});
pub export fn vkGetInstanceProcAddr(p_instance: vk.Instance, p_name: ?[*:0]const u8) callconv(vk.vulkan_call_conv) vk.PfnVoidFunction {
if (p_name == null) {
return null;
}
const name = std.mem.span(p_name.?);
return icd.getInstanceProcAddr(global_pfn_map, p_instance, name);
comptime {
_ = lib_vulkan;
}
test {