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 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
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user