summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index 267b182fb..2be9e2e52 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -973,9 +973,25 @@ void Device::CheckSuitability(bool requires_swapchain) const {
973 robustness2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT; 973 robustness2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT;
974 robustness2.pNext = &variable_pointers; 974 robustness2.pNext = &variable_pointers;
975 975
976 VkPhysicalDeviceTimelineSemaphoreFeatures timeline_semaphore{};
977 timeline_semaphore.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
978 timeline_semaphore.pNext = &robustness2;
979
980 VkPhysicalDevice16BitStorageFeatures bit16_storage{};
981 bit16_storage.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
982 bit16_storage.pNext = &timeline_semaphore;
983
984 VkPhysicalDevice8BitStorageFeatures bit8_storage{};
985 bit8_storage.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
986 bit8_storage.pNext = &bit16_storage;
987
988 VkPhysicalDeviceHostQueryResetFeatures host_query_reset{};
989 host_query_reset.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
990 host_query_reset.pNext = &bit8_storage;
991
976 VkPhysicalDeviceFeatures2KHR features2{}; 992 VkPhysicalDeviceFeatures2KHR features2{};
977 features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; 993 features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
978 features2.pNext = &robustness2; 994 features2.pNext = &host_query_reset;
979 995
980 physical.GetFeatures2KHR(features2); 996 physical.GetFeatures2KHR(features2);
981 997
@@ -1011,6 +1027,13 @@ void Device::CheckSuitability(bool requires_swapchain) const {
1011 std::make_pair(robustness2.robustImageAccess2, "robustImageAccess2"), 1027 std::make_pair(robustness2.robustImageAccess2, "robustImageAccess2"),
1012 std::make_pair(robustness2.nullDescriptor, "nullDescriptor"), 1028 std::make_pair(robustness2.nullDescriptor, "nullDescriptor"),
1013 std::make_pair(demote.shaderDemoteToHelperInvocation, "shaderDemoteToHelperInvocation"), 1029 std::make_pair(demote.shaderDemoteToHelperInvocation, "shaderDemoteToHelperInvocation"),
1030 std::make_pair(timeline_semaphore.timelineSemaphore, "timelineSemaphore"),
1031 std::make_pair(bit16_storage.storageBuffer16BitAccess, "storageBuffer16BitAccess"),
1032 std::make_pair(bit16_storage.uniformAndStorageBuffer16BitAccess,
1033 "uniformAndStorageBuffer16BitAccess"),
1034 std::make_pair(bit8_storage.uniformAndStorageBuffer8BitAccess,
1035 "uniformAndStorageBuffer8BitAccess"),
1036 std::make_pair(host_query_reset.hostQueryReset, "hostQueryReset"),
1014 }; 1037 };
1015 1038
1016 bool has_all_required_features = true; 1039 bool has_all_required_features = true;