diff --git a/.gitea/workflows/1.4-CTS.yml b/.gitea/workflows/1.4-CTS.yml index b772801..83ea2be 100644 --- a/.gitea/workflows/1.4-CTS.yml +++ b/.gitea/workflows/1.4-CTS.yml @@ -55,7 +55,7 @@ jobs: which deqp-runner && deqp-runner --version || echo "deqp-runner not found" - name: Run Vulkan CTS - run: zig build cts-soft -- --mustpass-list=master + run: zig build cts-soft -- --mustpass-list=master -j4 continue-on-error: true - name: Verify tests diff --git a/README.md b/README.md index 7033fa7..91ab321 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ zig build ``` Then ensure thy Vulkan loader is pointed toward the ICD manifest. -The precise ritual varies by system — consult the tomes of your operating system, or wander the web’s endless mausoleum of documentation. +The precise ritual varies by system — consult the tomes of your operating system, or wander the web's endless mausoleum of documentation. Use at your own risk. If thy machine shudders, weeps, or attempts to flee — know that it was warned. \ diff --git a/build.zig b/build.zig index ab24017..fa6c61f 100644 --- a/build.zig +++ b/build.zig @@ -255,16 +255,18 @@ fn addMultithreadedCTS(b: *std.Build, target: std.Build.ResolvedTarget, impl: *c }, })); - const mustpass_override = blk: { - if (b.args) |args| { - for (args) |arg| { - if (std.mem.startsWith(u8, arg, "--mustpass-list")) { - break :blk arg["--mustpass-list=".len..]; - } + var mustpass_override: ?[]const u8 = null; + var jobs_count: ?usize = null; + + if (b.args) |args| { + for (args) |arg| { + if (std.mem.startsWith(u8, arg, "--mustpass-list")) { + mustpass_override = arg["--mustpass-list=".len..]; + } else if (std.mem.startsWith(u8, arg, "-j")) { + jobs_count = try std.fmt.parseInt(usize, arg["-j".len..], 10); } } - break :blk null; - }; + } const mustpass_path = try cts.path( if (mustpass_override) |override| @@ -287,6 +289,9 @@ fn addMultithreadedCTS(b: *std.Build, target: std.Build.ResolvedTarget, impl: *c run.addArg(b.fmt("{s}{s}", .{ cache_path, mustpass_path })); run.addArg("--output"); run.addArg("./cts"); + if (jobs_count) |count| { + run.addArg(b.fmt("-j{d}", .{count})); + } run.addArg("--"); run.addArg(b.fmt("--deqp-archive-dir={s}{s}", .{ cache_path, try cts.path("").getPath3(b, null).toString(b.allocator) })); run.addArg(b.fmt("--deqp-vk-library-path={s}", .{b.getInstallPath(.lib, impl_lib.out_lib_filename)}));