Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion pkgs/c/compat.vulkan.lua
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,26 @@ package = {
ldflags = { "-framework", "CoreFoundation", "-lpthread", "-lm" },
runtime = {
-- macOS has no native Vulkan; the ICD is MoltenVK, layered over
-- Metal. The loader loads it exactly like any other ICD.
-- Metal. Nothing here ships it, and without it nothing crashes:
-- vkCreateInstance returns VK_ERROR_INCOMPATIBLE_DRIVER and the
-- program sees zero devices (measured on macos-15, mcpp-index #396).
--
-- HOW A PROGRAM GETS A DEVICE TODAY, both measured there:
-- * this static loader searches <executable dir>/vulkan/icd.d
-- first -- CoreFoundation's resources directory for an
-- unbundled executable is the executable's own directory -- so
-- libMoltenVK.dylib beside the executable and
-- vulkan/icd.d/MoltenVK_icd.json holding
-- "library_path": "../../libMoltenVK.dylib" enumerates the GPU,
-- and still does after the directory is copied elsewhere;
-- * or VK_DRIVER_FILES=<xim:moltenvk>/share/vulkan/icd.d/MoltenVK_icd.json.
-- Either way the instance must enable
-- VK_KHR_portability_enumeration and set
-- VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR, or the loader
-- hides a portability driver from vkEnumeratePhysicalDevices.
--
-- mcpp cannot yet place those two files beside the executable: it
-- deploys *.dll only, flattened into bin/ (mcpp-community/mcpp#615).
capabilities = { "vulkan.icd.driver" },
},
},
Expand Down
35 changes: 34 additions & 1 deletion pkgs/k/khronos.vulkan-hpp.lua
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,17 @@ package = {
-- header, loader and bindings repositories together.
xpm = {
linux = {
-- 1.4.357.1: the same headers, 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 (see compat.vulkan 1.4.357.1).
["1.4.357.1"] = {
url = {
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/vulkan-headers/releases/download/1.4.357.0/vulkan-headers-1.4.357.0.tar.gz",
},
sha256 = "e87dce08116151f6b6d7de6b6faf41498e87e6cf848ff16fa3bd5402190ad4a3",
},
["1.4.357.0"] = {
url = {
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
Expand All @@ -168,6 +179,17 @@ package = {
},
},
macosx = {
-- 1.4.357.1: the same headers, 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 (see compat.vulkan 1.4.357.1).
["1.4.357.1"] = {
url = {
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/vulkan-headers/releases/download/1.4.357.0/vulkan-headers-1.4.357.0.tar.gz",
},
sha256 = "e87dce08116151f6b6d7de6b6faf41498e87e6cf848ff16fa3bd5402190ad4a3",
},
["1.4.357.0"] = {
url = {
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
Expand All @@ -177,6 +199,17 @@ package = {
},
},
windows = {
-- 1.4.357.1: the same headers, 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 (see compat.vulkan 1.4.357.1).
["1.4.357.1"] = {
url = {
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
CN = "https://gitcode.com/mcpp-res/vulkan-headers/releases/download/1.4.357.0/vulkan-headers-1.4.357.0.tar.gz",
},
sha256 = "e87dce08116151f6b6d7de6b6faf41498e87e6cf848ff16fa3bd5402190ad4a3",
},
["1.4.357.0"] = {
url = {
GLOBAL = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/vulkan-sdk-1.4.357.0.tar.gz",
Expand Down Expand Up @@ -207,6 +240,6 @@ package = {
targets = { ["vulkan_hpp"] = { kind = "lib" } },
-- The loader, for the static dispatcher's direct calls — and, through
-- it, `compat.vulkan-headers` for the includes these units open.
deps = { ["compat.vulkan"] = "1.4.357.0" },
deps = { ["compat.vulkan"] = "1.4.357.3" },
},
}
2 changes: 1 addition & 1 deletion tests/examples/vulkan-hpp-module/mcpp.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ name = "vulkan-hpp-module-tests"
version = "0.1.0"

[dependencies.khronos]
vulkan-hpp = "1.4.357.0"
vulkan-hpp = "1.4.357.1"

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