diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index e462e52616..3eb9377d16 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -290,10 +290,10 @@ endif() if (YUZU_USE_EXTERNAL_VULKAN_HEADERS) set(CPM_USE_LOCAL_PACKAGES OFF) else() - set(CPM_USE_LOCAL_PACKAGES ON) + set(CPM_USE_LOCAL_PACKAGES OFF) endif() -# TODO(crueter): System vk-headers are too new for externals vk-util +# TODO(crueter): Vk1.4 impl CPMAddPackage( NAME VulkanHeaders @@ -303,6 +303,14 @@ CPMAddPackage( CUSTOM_CACHE_KEY "8926" ) +# CMake's interface generator sucks +if (VulkanHeaders_ADDED) + target_include_directories(Vulkan-Headers INTERFACE ${VulkanHeaders_SOURCE_DIR}/include) +endif() + +set(VulkanHeaders_SOURCE_DIR "${VulkanHeaders_SOURCE_DIR}" PARENT_SCOPE) +set(VulkanHeaders_ADDED "${VulkanHeaders_ADDED}" PARENT_SCOPE) + # Vulkan-Utility-Libraries if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) set(CPM_USE_LOCAL_PACKAGES OFF) diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index 211727be2e..eed1a73bff 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt @@ -337,6 +337,10 @@ if (VulkanUtilityLibraries_ADDED) target_include_directories(video_core PUBLIC ${VulkanUtilityLibraries_SOURCE_DIR}/include) endif() +if (VulkanHeaders_ADDED) + target_include_directories(video_core PUBLIC ${VulkanHeaders_SOURCE_DIR}/include) +endif() + target_link_libraries(video_core PRIVATE sirit Vulkan::Headers) if (ENABLE_NSIGHT_AFTERMATH) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 474e420daf..fc9e78a234 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -974,7 +974,6 @@ bool Device::GetSuitability(bool requires_swapchain) { // Configure properties. VkPhysicalDeviceVulkan12Features features_1_2{}; VkPhysicalDeviceVulkan13Features features_1_3{}; - VkPhysicalDeviceVulkan14Features features_1_4{}; // Configure properties. properties.properties = physical.GetProperties(); @@ -1053,13 +1052,10 @@ bool Device::GetSuitability(bool requires_swapchain) { if (instance_version >= VK_API_VERSION_1_2) { features_1_2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; features_1_3.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES; - features_1_4.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES; features_1_2.pNext = &features_1_3; - features_1_3.pNext = &features_1_4; *next = &features_1_2; - // next = &features_1_4.pNext; } // Test all features we know about. If the feature is not available in core at our