centralizing driver/vulkan versions in build script
Test / build_and_test (push) Successful in 27s
Build / build (push) Failing after 28s

This commit is contained in:
2026-06-16 03:17:08 +02:00
parent da0e6f86d2
commit 3b292d6808
5 changed files with 26 additions and 7 deletions
+5
View File
@@ -2,6 +2,8 @@ const std = @import("std");
const Step = std.Build.Step;
const builtin = @import("builtin");
const driver_version: std.SemanticVersion = .{ .major = 1, .minor = 0, .patch = 0 };
const ImplementationDesc = struct {
name: []const u8,
icd_name: ?[]const u8 = null,
@@ -73,6 +75,7 @@ pub fn build(b: *std.Build) !void {
const logs_option: LogType = b.option(LogType, "logs", "Driver logs") orelse .none;
const options = b.addOptions();
options.addOption(std.SemanticVersion, "driver_version", driver_version);
options.addOption(LogType, "logs", logs_option);
base_mod.addImport("zmath", zmath);
@@ -118,6 +121,8 @@ pub fn build(b: *std.Build) !void {
.use_llvm = use_llvm,
});
options.addOption(std.SemanticVersion, b.fmt("{s}_vulkan_version", .{impl.name}), impl.vulkan_version);
if (impl.custom) |func| {
func(b, lib, lib_mod, base_mod, vulkan, base_c_mod, target, optimize, use_llvm) catch continue;
}
+7 -2
View File
@@ -4,6 +4,7 @@ pub const base = @import("base");
pub const soft = @import("soft");
pub const c = base.c;
pub const config = base.config;
pub const ApeInstance = @import("ApeInstance.zig");
@@ -11,8 +12,12 @@ pub const Instance = ApeInstance;
pub const DRIVER_NAME = "Ape";
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0);
pub const DRIVER_VERSION = vk.makeApiVersion(0, 0, 0, 1);
pub const VULKAN_VERSION = vk.makeApiVersion(
0,
config.ape_vulkan_version.major,
config.ape_vulkan_version.minor,
config.ape_vulkan_version.patch,
);
pub const std_options = base.std_options;
+1 -1
View File
@@ -57,7 +57,7 @@ pub fn create(allocator: std.mem.Allocator, instance: *base.Instance) VkError!*S
};
interface.props.api_version = @bitCast(lib.VULKAN_VERSION);
interface.props.driver_version = @bitCast(lib.DRIVER_VERSION);
interface.props.driver_version = @bitCast(base.DRIVER_VERSION);
interface.props.device_id = lib.DEVICE_ID;
interface.props.device_type = .cpu;
interface.props.pipeline_cache_uuid = lib.PIPELINE_CACHE_UUID;
+7 -2
View File
@@ -3,6 +3,7 @@ const vk = @import("vulkan");
pub const base = @import("base");
pub const c = @import("soft_c");
pub const config = base.config;
pub const Device = @import("device/Device.zig");
@@ -38,8 +39,12 @@ pub const Instance = SoftInstance;
pub const DRIVER_LOGS_ENV_NAME = base.DRIVER_LOGS_ENV_NAME;
pub const DRIVER_NAME = "Soft";
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0);
pub const DRIVER_VERSION = vk.makeApiVersion(0, 0, 0, 1);
pub const VULKAN_VERSION = vk.makeApiVersion(
0,
config.soft_vulkan_version.major,
config.soft_vulkan_version.minor,
config.soft_vulkan_version.patch,
);
pub const DEVICE_ID = 0x600DCAFE;
pub const PIPELINE_CACHE_UUID: [vk.UUID_SIZE]u8 = "ApeSoftCacheUUID".*;
+6 -2
View File
@@ -56,8 +56,12 @@ pub const VULKAN_VENDOR_ID: i32 = @intFromEnum(vk.VendorId.ape);
/// Default driver name
pub const DRIVER_NAME = "Unnamed Ape Driver";
/// Default Vulkan version
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0);
pub const DRIVER_VERSION = vk.makeApiVersion(
0,
config.driver_version.major,
config.driver_version.minor,
config.driver_version.patch,
);
/// Maximum number of descriptor sets per pipeline
pub const VULKAN_MAX_DESCRIPTOR_SETS = 8;