Skip to content

Commit 95b2dc0

Browse files
fix(examples): follow the farms to 2026.09.11 (#602)
* fix(examples): follow the farms to 2026.09.11 `compat:vulkan-runtime` and `compat:opencl-runtime` no longer carry `libnvidia-pkcs11*` -- a PKCS#11 token module the vendor name pattern swept in and that no GPU driver's dispatch reaches -- and the chain that delivers them took new versions so an installed copy stops recording the old pin. Measured on this host with the driver, both examples rebuilt from an empty target directory: sycl members 49, walked 49, findings none vulkan members 56, walked 56, findings none and both compute `12 24 36 48` on an RTX 4080. Follows mcpplibs/mcpp-index#383. * fix(examples): offscreen stops naming a dependency its dependency already declares `compat.vulkan` declares `compat.vulkan-runtime` itself on Linux. Naming it here too pinned one version in two places, in two repositories, with nothing enforcing that they agree -- and they drifted three times in one day: the farm moved its key, this file moved its own, and a runner holding an installed `compat.vulkan` still recorded the previous one. Each time the build stopped with `irreconcilable versions` and each time the repair was to edit the other place. Measured after removing it: the example still receives the farm -- `library_dirs` names `compat-x-vulkan-runtime/2026.09.11`, and the record reads members 56, walked 56, no findings -- because the package that needs the adapter is the package that says so. The comment that explained why the adapter exists stays, and now explains why this file does not name it. --------- Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
1 parent 11bf22a commit 95b2dc0

4 files changed

Lines changed: 19 additions & 10 deletions

File tree

examples/09-heterogeneous/multi-backend/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ cuda-driver = "2026.09.05"
104104
# is a payload and the hardware ones are the host's.
105105
[target.'cfg(accelerator = "vulkan")'.dependencies.compat]
106106
vulkan = "1.4.357.0"
107-
vulkan-runtime = "2026.09.10"
107+
vulkan-runtime = "2026.09.11"
108108

109109
[build]
110110
# The device sources carry the accel they are for. A CONSTRAINED glob gates

examples/09-heterogeneous/sycl/app/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ plugins = { version = "0.5.2", features = ["rules-sycl", "tools-island"], host-m
3737
# message (#596). The farm now mirrors what the driver sentinel publishes
3838
# rather than naming a file.
3939
[dependencies.compat]
40-
sycl-runtime = "2026.09.10"
40+
sycl-runtime = "2026.09.11"
4141

4242
# NO [xlings.workspace]. `mcpp.rules.sycl` declares all five payloads this lane
4343
# needs, each closing one hole the host would otherwise fill: `dpcpp` (the

examples/09-heterogeneous/vulkan/app/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ plugins = { version = "0.5.2", features = ["rules-spirv"], host-module = true }
2222
# below is a payload and the hardware ones are the host's.
2323
[dependencies.compat]
2424
vulkan = "1.4.357.0"
25-
vulkan-runtime = "2026.09.10"
25+
vulkan-runtime = "2026.09.11"
2626

2727
# ONE payload here, and the shader compiler is not it: `mcpp.rules.spirv`
2828
# declares `xim:glslang` for itself. What stays is a DEVICE, and the boundary is

examples/10-graphics/offscreen/mcpp.toml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,23 @@ plugins = { version = "0.5.2", features = ["rules-spirv"], host-module = true }
2828
# seam work: the CPU leg below is selected by the accelerator, and only the
2929
# packages are unconditional.
3030
[dependencies.compat]
31-
vulkan = "1.4.357.1"
31+
vulkan = "1.4.357.2"
3232

33-
# The adapter that makes the host's own ICDs reachable from a binary running
34-
# under mcpp's private loader. An OS predicate, which IS allowed, and a Linux
35-
# concern by construction: macOS resolves through dyld and Windows through the
36-
# PE loader, and neither has a private loader to work around.
37-
[target.'cfg(linux)'.dependencies.compat]
38-
vulkan-runtime = "2026.09.10"
33+
# THE ADAPTER IS NOT NAMED HERE, AND THAT IS THE POINT.
34+
#
35+
# `compat.vulkan` declares `compat.vulkan-runtime` itself on Linux -- the
36+
# adapter that makes the host's own ICDs reachable from a binary running under
37+
# mcpp's private loader, which macOS and Windows do not need because dyld and
38+
# the PE loader have no private-loader problem to work around.
39+
#
40+
# Naming it here as well pinned one version in two places, in two repositories,
41+
# with nothing enforcing that they agree. They drifted three times in one day:
42+
# the loader package moved its pin, this file moved its own, and an installed
43+
# copy of `compat.vulkan` still recorded the previous one -- each time the build
44+
# stopped with `irreconcilable versions`, and each time the fix was to edit the
45+
# other place. A dependency that another dependency already declares is a
46+
# second copy of a decision; the version it needs is the one that package says
47+
# it needs.
3948

4049
# A Vulkan device that needs no GPU, so this example runs on a machine that has
4150
# none. It is a DEVICE and therefore a payload; the drivers a real GPU needs are

0 commit comments

Comments
 (0)