centralizing driver/vulkan versions in build script
This commit is contained in:
@@ -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
@@ -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;
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user