Vulkan: Enable as Experimental Option #113057

Merged
Jeroen Bakker merged 7 commits from Jeroen-Bakker/blender:vulkan/enable-as-experimental into main 2023-10-06 15:24:31 +02:00
5 changed files with 30 additions and 27 deletions

View File

@ -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)
Jeroen-Bakker marked this conversation as resolved Outdated

not needed, we don't do this for other variables like the wayland stuff either, any non existent variable is equal to false in cmake.

not needed, we don't do this for other variables like the wayland stuff either, any non existent variable is equal to false in cmake.
set(WITH_VULKAN_BACKEND OFF)
endif()
endif()
# Metal
if(APPLE)

View File

@ -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)
Jeroen-Bakker marked this conversation as resolved Outdated

Generally prefer to make the option unavailable rather than silently disabling it like this.

Generally prefer to make the option unavailable rather than silently disabling it like this.
find_package(OpenSubdiv)
endif()

View File

@ -46,7 +46,6 @@ else()
endif()
endif()
# Support restoring this value once pre-compiled libraries have been handled.
Jeroen-Bakker marked this conversation as resolved Outdated

Code is duplicated between the linux and windows platform file, there must be a better place for this

Code is duplicated between the linux and windows platform file, there must be a better place for this
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

View File

@ -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}

View File

@ -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*/)