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 Step = std.Build.Step;
const builtin = @import("builtin"); const builtin = @import("builtin");
const driver_version: std.SemanticVersion = .{ .major = 1, .minor = 0, .patch = 0 };
const ImplementationDesc = struct { const ImplementationDesc = struct {
name: []const u8, name: []const u8,
icd_name: ?[]const u8 = null, 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 logs_option: LogType = b.option(LogType, "logs", "Driver logs") orelse .none;
const options = b.addOptions(); const options = b.addOptions();
options.addOption(std.SemanticVersion, "driver_version", driver_version);
options.addOption(LogType, "logs", logs_option); options.addOption(LogType, "logs", logs_option);
base_mod.addImport("zmath", zmath); base_mod.addImport("zmath", zmath);
@@ -118,6 +121,8 @@ pub fn build(b: *std.Build) !void {
.use_llvm = use_llvm, .use_llvm = use_llvm,
}); });
options.addOption(std.SemanticVersion, b.fmt("{s}_vulkan_version", .{impl.name}), impl.vulkan_version);
if (impl.custom) |func| { if (impl.custom) |func| {
func(b, lib, lib_mod, base_mod, vulkan, base_c_mod, target, optimize, use_llvm) catch continue; 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 soft = @import("soft");
pub const c = base.c; pub const c = base.c;
pub const config = base.config;
pub const ApeInstance = @import("ApeInstance.zig"); pub const ApeInstance = @import("ApeInstance.zig");
@@ -11,8 +12,12 @@ pub const Instance = ApeInstance;
pub const DRIVER_NAME = "Ape"; pub const DRIVER_NAME = "Ape";
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0); pub const VULKAN_VERSION = vk.makeApiVersion(
pub const DRIVER_VERSION = vk.makeApiVersion(0, 0, 0, 1); 0,
config.ape_vulkan_version.major,
config.ape_vulkan_version.minor,
config.ape_vulkan_version.patch,
);
pub const std_options = base.std_options; 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.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_id = lib.DEVICE_ID;
interface.props.device_type = .cpu; interface.props.device_type = .cpu;
interface.props.pipeline_cache_uuid = lib.PIPELINE_CACHE_UUID; 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 base = @import("base");
pub const c = @import("soft_c"); pub const c = @import("soft_c");
pub const config = base.config;
pub const Device = @import("device/Device.zig"); 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_LOGS_ENV_NAME = base.DRIVER_LOGS_ENV_NAME;
pub const DRIVER_NAME = "Soft"; pub const DRIVER_NAME = "Soft";
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0); pub const VULKAN_VERSION = vk.makeApiVersion(
pub const DRIVER_VERSION = vk.makeApiVersion(0, 0, 0, 1); 0,
config.soft_vulkan_version.major,
config.soft_vulkan_version.minor,
config.soft_vulkan_version.patch,
);
pub const DEVICE_ID = 0x600DCAFE; pub const DEVICE_ID = 0x600DCAFE;
pub const PIPELINE_CACHE_UUID: [vk.UUID_SIZE]u8 = "ApeSoftCacheUUID".*; 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 /// Default driver name
pub const DRIVER_NAME = "Unnamed Ape Driver"; pub const DRIVER_NAME = "Unnamed Ape Driver";
/// Default Vulkan version pub const DRIVER_VERSION = vk.makeApiVersion(
pub const VULKAN_VERSION = vk.makeApiVersion(0, 1, 0, 0); 0,
config.driver_version.major,
config.driver_version.minor,
config.driver_version.patch,
);
/// Maximum number of descriptor sets per pipeline /// Maximum number of descriptor sets per pipeline
pub const VULKAN_MAX_DESCRIPTOR_SETS = 8; pub const VULKAN_MAX_DESCRIPTOR_SETS = 8;