From 69fd6956606374ab935079aa426ae7f8c6913765 Mon Sep 17 00:00:00 2001 From: m154k1 <139042094+m154k1@users.noreply.github.com> Date: Sun, 19 Oct 2025 16:27:57 +0300 Subject: [PATCH] CMake: Add MVK_USE_METAL_PRIVATE_API option --- CMakeLists.txt | 4 +++- Common/CMakeLists.txt | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 841d2522..86d2e917 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,6 +65,8 @@ project(MoltenVK set(MVK_CONFIG_LOG_LEVEL "info" CACHE STRING "Set the default log level for MoltenVK. Options are: debug, info, warn, error, off. Default is 'info'.") set_property(CACHE MVK_CONFIG_LOG_LEVEL PROPERTY STRINGS "debug" "info" "warn" "error" "off") +option(MVK_USE_METAL_PRIVATE_API "If enabled, MoltenVK will use private interfaces exposed by Metal to implement Vulkan features that are difficult to support otherwise." OFF) + # Set default minimum C++ standard if(MOLTEN_VK_TOPLEVEL_PROJECT) set(CMAKE_CXX_STANDARD 17) @@ -118,4 +120,4 @@ if(MOLTEN_VK_TOPLEVEL_PROJECT) DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig) install(TARGETS MoltenVKShaderConverter) -endif() \ No newline at end of file +endif() diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt index e1a08764..38873d90 100644 --- a/Common/CMakeLists.txt +++ b/Common/CMakeLists.txt @@ -63,4 +63,13 @@ else() endif() target_compile_definitions(MoltenVK_Common PUBLIC MVK_CONFIG_LOG_LEVEL=${MVK_CONFIG_LOG_LEVEL_NUM} -) \ No newline at end of file +) + +if(MVK_USE_METAL_PRIVATE_API) + set(MVK_USE_METAL_PRIVATE_API_NUM 1) +else() + set(MVK_USE_METAL_PRIVATE_API_NUM 0) +endif() +target_compile_definitions(MoltenVK_Common PUBLIC + MVK_USE_METAL_PRIVATE_API=${MVK_USE_METAL_PRIVATE_API_NUM} +)