summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index 13b5da341..33856fe59 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -456,6 +456,13 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
456 }; 456 };
457 SetNext(next, demote); 457 SetNext(next, demote);
458 458
459 VkPhysicalDeviceShaderDrawParametersFeatures draw_parameters{
460 .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
461 .pNext = nullptr,
462 .shaderDrawParameters = true,
463 };
464 SetNext(next, draw_parameters);
465
459 VkPhysicalDeviceShaderFloat16Int8Features float16_int8; 466 VkPhysicalDeviceShaderFloat16Int8Features float16_int8;
460 if (is_int8_supported || is_float16_supported) { 467 if (is_int8_supported || is_float16_supported) {
461 float16_int8 = { 468 float16_int8 = {
@@ -989,9 +996,13 @@ void Device::CheckSuitability(bool requires_swapchain) const {
989 host_query_reset.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES; 996 host_query_reset.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
990 host_query_reset.pNext = &bit8_storage; 997 host_query_reset.pNext = &bit8_storage;
991 998
999 VkPhysicalDeviceShaderDrawParametersFeatures draw_parameters{};
1000 draw_parameters.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES;
1001 draw_parameters.pNext = &host_query_reset;
1002
992 VkPhysicalDeviceFeatures2 features2{}; 1003 VkPhysicalDeviceFeatures2 features2{};
993 features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; 1004 features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
994 features2.pNext = &host_query_reset; 1005 features2.pNext = &draw_parameters;
995 1006
996 physical.GetFeatures2(features2); 1007 physical.GetFeatures2(features2);
997 1008
@@ -1034,6 +1045,7 @@ void Device::CheckSuitability(bool requires_swapchain) const {
1034 std::make_pair(bit8_storage.uniformAndStorageBuffer8BitAccess, 1045 std::make_pair(bit8_storage.uniformAndStorageBuffer8BitAccess,
1035 "uniformAndStorageBuffer8BitAccess"), 1046 "uniformAndStorageBuffer8BitAccess"),
1036 std::make_pair(host_query_reset.hostQueryReset, "hostQueryReset"), 1047 std::make_pair(host_query_reset.hostQueryReset, "hostQueryReset"),
1048 std::make_pair(draw_parameters.shaderDrawParameters, "shaderDrawParameters"),
1037 }; 1049 };
1038 1050
1039 bool has_all_required_features = true; 1051 bool has_all_required_features = true;