diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cc2fe2870f..f0f60ad4477 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -793,15 +793,20 @@ else() endif() # Vulkan -option(WITH_VULKAN_BACKEND "Enable Vulkan as graphics backend (only for development)" OFF) -option(WITH_VULKAN_GUARDEDALLOC "\ -Use guardedalloc for host allocations done inside Vulkan (development option)" - OFF -) -mark_as_advanced( - WITH_VULKAN_BACKEND - WITH_VULKAN_GUARDEDALLOC -) +if(NOT APPLE) + option(WITH_VULKAN_BACKEND "Enable Vulkan as graphics backend (experimental)" ON) + option(WITH_VULKAN_GUARDEDALLOC "\ + Use guardedalloc for host allocations done inside Vulkan (development option)" + OFF + ) + mark_as_advanced( + WITH_VULKAN_BACKEND + WITH_VULKAN_GUARDEDALLOC + ) + if (NOT WITH_EXPERIMENTAL_FEATURES) + set(WITH_VULKAN_BACKEND OFF) + endif() +endif() # Metal if(APPLE) diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index fb9386b8af6..b52730e552f 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -102,12 +102,6 @@ if(WITH_MATERIALX) endif() add_bundled_libraries(materialx/lib) -if(WITH_VULKAN_BACKEND) - find_package(MoltenVK REQUIRED) - find_package(ShaderC REQUIRED) - find_package(Vulkan REQUIRED) -endif() - if(WITH_OPENSUBDIV) find_package(OpenSubdiv) endif() diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 2dbc3e09b71..89efe417355 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -46,7 +46,6 @@ else() endif() endif() - # Support restoring this value once pre-compiled libraries have been handled. set(WITH_STATIC_LIBS_INIT ${WITH_STATIC_LIBS}) @@ -118,6 +117,7 @@ if(WITH_VULKAN_BACKEND) find_package_wrapper(Vulkan REQUIRED) find_package_wrapper(ShaderC REQUIRED) endif() +add_bundled_libraries(vulkan/lib) function(check_freetype_for_brotli) if((DEFINED HAVE_BROTLI AND HAVE_BROTLI) AND diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 8c8c88326b7..443e190e2d9 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -897,6 +897,13 @@ elseif(WIN32) ALL ) + if(WITH_VULKAN_BACKEND) + windows_install_shared_manifest( + FILES ${LIBDIR}/vulkan/bin/vulkan-1.dll + ALL + ) + endif() + if(WITH_OPENMP AND MSVC_CLANG) windows_install_shared_manifest( FILES ${CLANG_OPENMP_DLL} diff --git a/source/creator/creator_args.cc b/source/creator/creator_args.cc index 7a9d0bbbd60..ae501cf3402 100644 --- a/source/creator/creator_args.cc +++ b/source/creator/creator_args.cc @@ -1224,26 +1224,23 @@ static int arg_handle_debug_gpu_renderdoc_set(int /*argc*/, static const char arg_handle_gpu_backend_set_doc_all[] = "\n" "\tForce to use a specific GPU backend. Valid options: " - "'vulkan', " + "'vulkan' (experimental), " "'metal', " "'opengl'."; static const char arg_handle_gpu_backend_set_doc[] = "\n" "\tForce to use a specific GPU backend. Valid options: " -# ifdef WITH_VULKAN_BACKEND - "'vulkan'" -# if defined(WITH_METAL_BACKEND) || defined(WITH_OPENGL_BACKEND) - ", " +# ifdef WITH_OPENGL_BACKEND + "'opengl'" +# if defined(WITH_VULKAN_BACKEND) + " or " # endif # endif +# ifdef WITH_VULKAN_BACKEND + "'vulkan' (experimental)" +# endif # ifdef WITH_METAL_BACKEND "'metal'" -# if defined(WITH_OPENGL_BACKEND) - ", " -# endif -# endif -# ifdef WITH_OPENGL_BACKEND - "'opengl'" # endif "."; static int arg_handle_gpu_backend_set(int argc, const char **argv, void * /*data*/)