Skip to content

Commit 194b3c6

Browse files
feat(khronos.vulkan-hpp): 1.4.357.1 follows compat.vulkan 1.4.357.3; the macOS note says how to get a device (#398)
KHRONOS.VULKAN-HPP 1.4.357.1 -- the same Vulkan-Headers tarball, pinned to compat.vulkan 1.4.357.3, whose Windows artifact carries the loader DLL. A new version rather than a moved pin, because an installed copy records the pin it resolved with. `vulkan-hpp-module` moves to it. This is the half of #395 that could not be verified in #395 itself: the member redirects only the `khronos` namespace to this checkout, so `compat` came from the published index, which did not have 1.4.357.3 until #395 merged. Redirecting `compat` as well is still refused on mcpp 2026.9.11.2 ("≥2 project-level index repos is a known xlings resolution gap"), so the order had to be: merge #395, republish, then this. On #395's own `windows-2022` leg the member failed exactly as predicted (it resolved compat.vulkan 1.4.357.0 and died with 0xC0000135); this change is judged by that leg passing. COMPAT.VULKAN, macOS -- a comment, no behaviour change. The block said only that the ICD is MoltenVK. It now records what was measured on macos-15 (#396): nothing crashes without MoltenVK; a device enumerates when libMoltenVK.dylib and a relative-path manifest sit in <executable dir>/vulkan/icd.d, which the static loader searches first, and that layout survives being moved; or through VK_DRIVER_FILES; and in both cases only with portability enumeration enabled. What mcpp would need to place those files is mcpp-community/mcpp#615. Co-authored-by: sunrisepeak <x.d2learn.org@gmail.com>
1 parent 492a7e2 commit 194b3c6

3 files changed

Lines changed: 55 additions & 3 deletions

File tree

pkgs/c/compat.vulkan.lua

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,26 @@ package = {
403403
ldflags = { "-framework", "CoreFoundation", "-lpthread", "-lm" },
404404
runtime = {
405405
-- macOS has no native Vulkan; the ICD is MoltenVK, layered over
406-
-- Metal. The loader loads it exactly like any other ICD.
406+
-- Metal. Nothing here ships it, and without it nothing crashes:
407+
-- vkCreateInstance returns VK_ERROR_INCOMPATIBLE_DRIVER and the
408+
-- program sees zero devices (measured on macos-15, mcpp-index #396).
409+
--
410+
-- HOW A PROGRAM GETS A DEVICE TODAY, both measured there:
411+
-- * this static loader searches <executable dir>/vulkan/icd.d
412+
-- first -- CoreFoundation's resources directory for an
413+
-- unbundled executable is the executable's own directory -- so
414+
-- libMoltenVK.dylib beside the executable and
415+
-- vulkan/icd.d/MoltenVK_icd.json holding
416+
-- "library_path": "../../libMoltenVK.dylib" enumerates the GPU,
417+
-- and still does after the directory is copied elsewhere;
418+
-- * or VK_DRIVER_FILES=<xim:moltenvk>/share/vulkan/icd.d/MoltenVK_icd.json.
419+
-- Either way the instance must enable
420+
-- VK_KHR_portability_enumeration and set
421+
-- VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR, or the loader
422+
-- hides a portability driver from vkEnumeratePhysicalDevices.
423+
--
424+
-- mcpp cannot yet place those two files beside the executable: it
425+
-- deploys *.dll only, flattened into bin/ (mcpp-community/mcpp#615).
407426
capabilities = { "vulkan.icd.driver" },
408427
},
409428
},

pkgs/k/khronos.vulkan-hpp.lua

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,17 @@ package = {
159159
-- header, loader and bindings repositories together.
160160
xpm = {
161161
linux = {
162+
-- 1.4.357.1: the same headers, pinned to compat.vulkan 1.4.357.3, whose
163+
-- Windows artifact carries the loader DLL. A new version rather than a
164+
-- moved pin, because an installed copy records the pin it resolved
165+
-- with (see compat.vulkan 1.4.357.1).
166+
["1.4.357.1"] = {
167+
url = {
168+
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
169+
CN = "https://gitcode.com/mcpp-res/vulkan-headers/releases/download/1.4.357.0/vulkan-headers-1.4.357.0.tar.gz",
170+
},
171+
sha256 = "e87dce08116151f6b6d7de6b6faf41498e87e6cf848ff16fa3bd5402190ad4a3",
172+
},
162173
["1.4.357.0"] = {
163174
url = {
164175
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
@@ -168,6 +179,17 @@ package = {
168179
},
169180
},
170181
macosx = {
182+
-- 1.4.357.1: the same headers, pinned to compat.vulkan 1.4.357.3, whose
183+
-- Windows artifact carries the loader DLL. A new version rather than a
184+
-- moved pin, because an installed copy records the pin it resolved
185+
-- with (see compat.vulkan 1.4.357.1).
186+
["1.4.357.1"] = {
187+
url = {
188+
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
189+
CN = "https://gitcode.com/mcpp-res/vulkan-headers/releases/download/1.4.357.0/vulkan-headers-1.4.357.0.tar.gz",
190+
},
191+
sha256 = "e87dce08116151f6b6d7de6b6faf41498e87e6cf848ff16fa3bd5402190ad4a3",
192+
},
171193
["1.4.357.0"] = {
172194
url = {
173195
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
@@ -177,6 +199,17 @@ package = {
177199
},
178200
},
179201
windows = {
202+
-- 1.4.357.1: the same headers, pinned to compat.vulkan 1.4.357.3, whose
203+
-- Windows artifact carries the loader DLL. A new version rather than a
204+
-- moved pin, because an installed copy records the pin it resolved
205+
-- with (see compat.vulkan 1.4.357.1).
206+
["1.4.357.1"] = {
207+
url = {
208+
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
209+
CN = "https://gitcode.com/mcpp-res/vulkan-headers/releases/download/1.4.357.0/vulkan-headers-1.4.357.0.tar.gz",
210+
},
211+
sha256 = "e87dce08116151f6b6d7de6b6faf41498e87e6cf848ff16fa3bd5402190ad4a3",
212+
},
180213
["1.4.357.0"] = {
181214
url = {
182215
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
@@ -207,6 +240,6 @@ package = {
207240
targets = { ["vulkan_hpp"] = { kind = "lib" } },
208241
-- The loader, for the static dispatcher's direct calls — and, through
209242
-- it, `compat.vulkan-headers` for the includes these units open.
210-
deps = { ["compat.vulkan"] = "1.4.357.0" },
243+
deps = { ["compat.vulkan"] = "1.4.357.3" },
211244
},
212245
}

tests/examples/vulkan-hpp-module/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ name = "vulkan-hpp-module-tests"
2121
version = "0.1.0"
2222

2323
[dependencies.khronos]
24-
vulkan-hpp = "1.4.357.0"
24+
vulkan-hpp = "1.4.357.1"
2525

2626
# No [build] section, and no per-platform gating: unlike tests/examples/vulkan,
2727
# which had to publish its own HAVE_VULKAN_LOADER switch, nothing here is

0 commit comments

Comments
 (0)