diff options
| author | azhirnov <zh1dron@gmail.com> | 2020-08-19 15:57:26 +0000 |
|---|---|---|
| committer | azhirnov <zh1dron@gmail.com> | 2020-08-19 16:01:49 +0000 |
| commit | 95952ba8f76af60a91a2672f5657039c7fc7fa8c (patch) | |
| tree | 80c3cd6aded0add54afcb549683b1a9ad14b36e6 /Graphics/GraphicsEngineVulkan | |
| parent | Load dxcompiler.dll in runtime (diff) | |
| download | DiligentCore-95952ba8f76af60a91a2672f5657039c7fc7fa8c.tar.gz DiligentCore-95952ba8f76af60a91a2672f5657039c7fc7fa8c.zip | |
Use DXIL to compile SPIRV from HLSL (wip)
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
| -rw-r--r-- | Graphics/GraphicsEngineVulkan/CMakeLists.txt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngineVulkan/CMakeLists.txt b/Graphics/GraphicsEngineVulkan/CMakeLists.txt index 93a811b1..c6fffdee 100644 --- a/Graphics/GraphicsEngineVulkan/CMakeLists.txt +++ b/Graphics/GraphicsEngineVulkan/CMakeLists.txt @@ -187,6 +187,51 @@ else() list(APPEND PRIVATE_DEPENDENCIES SPIRV-Tools-opt) endif() +# find Vulkan SDK +if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.7") + find_package(Vulkan) + if(Vulkan_FOUND) + get_filename_component(VulkanSDKPath ${Vulkan_LIBRARY} DIRECTORY) + set(VulkanSDKPath "${VulkanSDKPath}/..") + if(NOT EXISTS "${VulkanSDKPath}") + message(FATAL_ERROR "can't get Vulkan SDK path") + endif() + if(PLATFORM_WIN32) + if (${CMAKE_SIZEOF_VOID_P} EQUAL 8) + set(Vulkan_BINARY "${VulkanSDKPath}/Bin/dxcompiler.dll") + else() + set(Vulkan_BINARY "${VulkanSDKPath}/Bin32/dxcompiler.dll") + endif() + elseif(PLATFORM_LINUX) + set(Vulkan_BINARY "${VulkanSDKPath}/bin/dxcompiler.so") + endif() + endif() +endif() +# Try to find Vulkan SDK from environment variable +if(NOT Vulkan_FOUND) + if(EXISTS "$ENV{VULKAN_SDK}") + set(Vulkan_FOUND TRUE) + if(PLATFORM_WIN32) + if (${CMAKE_SIZEOF_VOID_P} EQUAL 8) + set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/Lib") + set(Vulkan_BINARY "$ENV{VULKAN_SDK}/Bin/dxcompiler.dll") + else() + set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/Lib32") + set(Vulkan_BINARY "$ENV{VULKAN_SDK}/Bin32/dxcompiler.dll") + endif() + elseif(PLATFORM_LINUX) + set(Vulkan_LIBRARY "$ENV{VULKAN_SDK}/lib") + set(Vulkan_BINARY "$ENV{VULKAN_SDK}/bin/dxcompiler.so") + endif() + endif() +endif() +if(EXISTS ${Vulkan_BINARY}) + set(HAS_VK_DXIL_COMPILER TRUE CACHE INTERNAL "" FORCE) + set(DXC_VK_COMPILER_PATH "${Vulkan_BINARY}" CACHE INTERNAL "" FORCE) + target_compile_definitions(Diligent-GraphicsEngineVk-static PRIVATE HAS_VK_DXIL_COMPILER) + message(STATUS "Found DXIL compiler for Vulkan") +endif() + if(PLATFORM_WIN32) # Use Volk elseif(PLATFORM_MACOS) |
