fixing build

This commit is contained in:
2025-11-02 20:44:42 +01:00
parent 697b67e07a
commit c94e15b639
5 changed files with 27 additions and 7 deletions

View File

@@ -4,16 +4,18 @@ const Step = std.Build.Step;
const ImplementationDesc = struct { const ImplementationDesc = struct {
name: []const u8, name: []const u8,
root_source_file: []const u8, root_source_file: []const u8,
custom: ?*const fn (*std.Build, *std.Build.Module) anyerror!void = null,
}; };
const implementations = [_]ImplementationDesc{ const implementations = [_]ImplementationDesc{
.{ .{
.name = "soft", .name = "soft",
.root_source_file = "src/soft/lib.zig", .root_source_file = "src/soft/lib.zig",
.custom = customSoft,
}, },
}; };
pub fn build(b: *std.Build) void { pub fn build(b: *std.Build) !void {
const target = b.standardTargetOptions(.{}); const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{}); const optimize = b.standardOptimizeOption(.{});
@@ -47,6 +49,10 @@ pub fn build(b: *std.Build) void {
lib_mod.addSystemIncludePath(vulkan_headers.path("include")); lib_mod.addSystemIncludePath(vulkan_headers.path("include"));
if (impl.custom) |custom| {
try custom(b, lib_mod);
}
const lib = b.addLibrary(.{ const lib = b.addLibrary(.{
.name = b.fmt("vulkan_{s}", .{impl.name}), .name = b.fmt("vulkan_{s}", .{impl.name}),
.root_module = lib_mod, .root_module = lib_mod,
@@ -82,3 +88,8 @@ pub fn build(b: *std.Build) void {
test_c_step.dependOn(&run_c_test.step); test_c_step.dependOn(&run_c_test.step);
} }
} }
fn customSoft(b: *std.Build, mod: *std.Build.Module) !void {
const cpuinfo = b.lazyDependency("cpuinfo", .{}) orelse return error.UnresolvedDependency;
mod.addImport("cpuinfo", cpuinfo.module("cpuinfo"));
}

View File

@@ -13,6 +13,11 @@
.url = "git+https://github.com/catmeow72/vulkan-zig/#8961518db28f88d2cf09ea68e146923de2cfa7f0", .url = "git+https://github.com/catmeow72/vulkan-zig/#8961518db28f88d2cf09ea68e146923de2cfa7f0",
.hash = "vulkan-0.0.0-r7Ytx6hBAwD8X_TN32qlkzul4riK6vFvjtK9fZfRvALg", .hash = "vulkan-0.0.0-r7Ytx6hBAwD8X_TN32qlkzul4riK6vFvjtK9fZfRvALg",
}, },
.cpuinfo = .{
.url = "git+https://github.com/Kbz-8/cpuinfo-zig#77f82a1248194e7fb706967343c66021f8522766",
.hash = "cpuinfo-0.1.0-V7dMLcghAADJuG7dkd3MnwDPZ232pBK_8uGjxY43eP5u",
.lazy = true,
},
}, },
.paths = .{ .paths = .{

View File

@@ -2,6 +2,7 @@ const std = @import("std");
const vk = @import("vulkan"); const vk = @import("vulkan");
const Instance = @import("Instance.zig"); const Instance = @import("Instance.zig");
const common = @import("common"); const common = @import("common");
const root = @import("root");
const dispatchable = common.dispatchable; const dispatchable = common.dispatchable;
@@ -13,10 +14,10 @@ common_physical_device: common.PhysicalDevice,
pub fn init(self: *Self) !void { pub fn init(self: *Self) !void {
self.common_physical_device.props = .{ self.common_physical_device.props = .{
.api_version = @bitCast(common.DRIVER_VULKAN_VERSION), .api_version = @bitCast(root.VULKAN_VERSION),
.driver_version = @bitCast(common.DRIVER_VERSION), .driver_version = @bitCast(root.DRIVER_VERSION),
.vendor_id = 0x0601, .vendor_id = common.VULKAN_VENDOR_ID,
.device_id = 0x060103, .device_id = root.DEVICE_ID,
.device_type = .cpu, .device_type = .cpu,
.device_name = [_]u8{0} ** vk.MAX_PHYSICAL_DEVICE_NAME_SIZE, .device_name = [_]u8{0} ** vk.MAX_PHYSICAL_DEVICE_NAME_SIZE,
.pipeline_cache_uuid = undefined, .pipeline_cache_uuid = undefined,

View File

@@ -4,6 +4,10 @@ const common = @import("common");
const Instance = @import("Instance.zig"); const Instance = @import("Instance.zig");
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0);
pub const DRIVER_VERSION = vk.makeApiVersion(0, 0, 0, 1);
pub const DEVICE_ID = 0x600DCAFE;
const global_pfn_map = std.StaticStringMap(vk.PfnVoidFunction).initComptime(.{ const global_pfn_map = std.StaticStringMap(vk.PfnVoidFunction).initComptime(.{
.{ "vkGetInstanceProcAddr", @as(vk.PfnVoidFunction, @ptrCast(&common.icd.getInstanceProcAddr)) }, .{ "vkGetInstanceProcAddr", @as(vk.PfnVoidFunction, @ptrCast(&common.icd.getInstanceProcAddr)) },
.{ "vkCreateInstance", @as(vk.PfnVoidFunction, @ptrCast(&Instance.create)) }, .{ "vkCreateInstance", @as(vk.PfnVoidFunction, @ptrCast(&Instance.create)) },

View File

@@ -7,8 +7,7 @@ pub const dispatchable = @import("dispatchable.zig");
pub const Instance = @import("Instance.zig"); pub const Instance = @import("Instance.zig");
pub const PhysicalDevice = @import("PhysicalDevice.zig"); pub const PhysicalDevice = @import("PhysicalDevice.zig");
pub const DRIVER_VERSION = vk.makeApiVersion(0, 0, 0, 1); pub const VULKAN_VENDOR_ID = @typeInfo(vk.VendorId).@"enum".fields[@typeInfo(vk.VendorId).@"enum".fields.len - 1].value + 1;
pub const DRIVER_VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0);
pub const std_options: std.Options = .{ pub const std_options: std.Options = .{
.log_level = .info, .log_level = .info,