Просмотр исходного кода

vulkan_device: Use designated initializers for features

ReinUsesLisp 5 лет назад
Родитель
Сommit
1a987054c5
1 измененных файлов с 59 добавлено и 60 удалено
  1. 59 60
      src/video_core/vulkan_common/vulkan_device.cpp

+ 59 - 60
src/video_core/vulkan_common/vulkan_device.cpp

@@ -191,78 +191,77 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
                const vk::InstanceDispatch& dld_)
     : instance{instance_}, dld{dld_}, physical{physical_}, properties{physical.GetProperties()},
       format_properties{GetFormatProperties(physical)} {
-    CheckSuitability();
+    CheckSuitability(surface != nullptr);
     SetupFamilies(surface);
     SetupFeatures();
 
     const auto queue_cis = GetDeviceQueueCreateInfos();
-    const std::vector extensions = LoadExtensions();
+    const std::vector extensions = LoadExtensions(surface != nullptr);
 
     VkPhysicalDeviceFeatures2 features2{
         .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
         .pNext = nullptr,
-        .features{},
+        .features{
+            .robustBufferAccess = false,
+            .fullDrawIndexUint32 = false,
+            .imageCubeArray = true,
+            .independentBlend = true,
+            .geometryShader = true,
+            .tessellationShader = true,
+            .sampleRateShading = false,
+            .dualSrcBlend = false,
+            .logicOp = false,
+            .multiDrawIndirect = false,
+            .drawIndirectFirstInstance = false,
+            .depthClamp = true,
+            .depthBiasClamp = true,
+            .fillModeNonSolid = false,
+            .depthBounds = false,
+            .wideLines = false,
+            .largePoints = true,
+            .alphaToOne = false,
+            .multiViewport = true,
+            .samplerAnisotropy = true,
+            .textureCompressionETC2 = false,
+            .textureCompressionASTC_LDR = is_optimal_astc_supported,
+            .textureCompressionBC = false,
+            .occlusionQueryPrecise = true,
+            .pipelineStatisticsQuery = false,
+            .vertexPipelineStoresAndAtomics = true,
+            .fragmentStoresAndAtomics = true,
+            .shaderTessellationAndGeometryPointSize = false,
+            .shaderImageGatherExtended = true,
+            .shaderStorageImageExtendedFormats = false,
+            .shaderStorageImageMultisample = is_shader_storage_image_multisample,
+            .shaderStorageImageReadWithoutFormat = is_formatless_image_load_supported,
+            .shaderStorageImageWriteWithoutFormat = true,
+            .shaderUniformBufferArrayDynamicIndexing = false,
+            .shaderSampledImageArrayDynamicIndexing = false,
+            .shaderStorageBufferArrayDynamicIndexing = false,
+            .shaderStorageImageArrayDynamicIndexing = false,
+            .shaderClipDistance = false,
+            .shaderCullDistance = false,
+            .shaderFloat64 = false,
+            .shaderInt64 = false,
+            .shaderInt16 = false,
+            .shaderResourceResidency = false,
+            .shaderResourceMinLod = false,
+            .sparseBinding = false,
+            .sparseResidencyBuffer = false,
+            .sparseResidencyImage2D = false,
+            .sparseResidencyImage3D = false,
+            .sparseResidency2Samples = false,
+            .sparseResidency4Samples = false,
+            .sparseResidency8Samples = false,
+            .sparseResidency16Samples = false,
+            .sparseResidencyAliased = false,
+            .variableMultisampleRate = false,
+            .inheritedQueries = false,
+        },
     };
     const void* first_next = &features2;
     void** next = &features2.pNext;
 
-    features2.features = {
-        .robustBufferAccess = false,
-        .fullDrawIndexUint32 = false,
-        .imageCubeArray = true,
-        .independentBlend = true,
-        .geometryShader = true,
-        .tessellationShader = true,
-        .sampleRateShading = false,
-        .dualSrcBlend = false,
-        .logicOp = false,
-        .multiDrawIndirect = false,
-        .drawIndirectFirstInstance = false,
-        .depthClamp = true,
-        .depthBiasClamp = true,
-        .fillModeNonSolid = false,
-        .depthBounds = false,
-        .wideLines = false,
-        .largePoints = true,
-        .alphaToOne = false,
-        .multiViewport = true,
-        .samplerAnisotropy = true,
-        .textureCompressionETC2 = false,
-        .textureCompressionASTC_LDR = is_optimal_astc_supported,
-        .textureCompressionBC = false,
-        .occlusionQueryPrecise = true,
-        .pipelineStatisticsQuery = false,
-        .vertexPipelineStoresAndAtomics = true,
-        .fragmentStoresAndAtomics = true,
-        .shaderTessellationAndGeometryPointSize = false,
-        .shaderImageGatherExtended = true,
-        .shaderStorageImageExtendedFormats = false,
-        .shaderStorageImageMultisample = is_shader_storage_image_multisample,
-        .shaderStorageImageReadWithoutFormat = is_formatless_image_load_supported,
-        .shaderStorageImageWriteWithoutFormat = true,
-        .shaderUniformBufferArrayDynamicIndexing = false,
-        .shaderSampledImageArrayDynamicIndexing = false,
-        .shaderStorageBufferArrayDynamicIndexing = false,
-        .shaderStorageImageArrayDynamicIndexing = false,
-        .shaderClipDistance = false,
-        .shaderCullDistance = false,
-        .shaderFloat64 = false,
-        .shaderInt64 = false,
-        .shaderInt16 = false,
-        .shaderResourceResidency = false,
-        .shaderResourceMinLod = false,
-        .sparseBinding = false,
-        .sparseResidencyBuffer = false,
-        .sparseResidencyImage2D = false,
-        .sparseResidencyImage3D = false,
-        .sparseResidency2Samples = false,
-        .sparseResidency4Samples = false,
-        .sparseResidency8Samples = false,
-        .sparseResidency16Samples = false,
-        .sparseResidencyAliased = false,
-        .variableMultisampleRate = false,
-        .inheritedQueries = false,
-    };
     VkPhysicalDeviceTimelineSemaphoreFeaturesKHR timeline_semaphore{
         .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR,
         .pNext = nullptr,