diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_device.cpp | 119 |
1 files changed, 59 insertions, 60 deletions
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 130b2a5e0..ec9cd5b34 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp | |||
| @@ -191,78 +191,77 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR | |||
| 191 | const vk::InstanceDispatch& dld_) | 191 | const vk::InstanceDispatch& dld_) |
| 192 | : instance{instance_}, dld{dld_}, physical{physical_}, properties{physical.GetProperties()}, | 192 | : instance{instance_}, dld{dld_}, physical{physical_}, properties{physical.GetProperties()}, |
| 193 | format_properties{GetFormatProperties(physical)} { | 193 | format_properties{GetFormatProperties(physical)} { |
| 194 | CheckSuitability(); | 194 | CheckSuitability(surface != nullptr); |
| 195 | SetupFamilies(surface); | 195 | SetupFamilies(surface); |
| 196 | SetupFeatures(); | 196 | SetupFeatures(); |
| 197 | 197 | ||
| 198 | const auto queue_cis = GetDeviceQueueCreateInfos(); | 198 | const auto queue_cis = GetDeviceQueueCreateInfos(); |
| 199 | const std::vector extensions = LoadExtensions(); | 199 | const std::vector extensions = LoadExtensions(surface != nullptr); |
| 200 | 200 | ||
| 201 | VkPhysicalDeviceFeatures2 features2{ | 201 | VkPhysicalDeviceFeatures2 features2{ |
| 202 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, | 202 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, |
| 203 | .pNext = nullptr, | 203 | .pNext = nullptr, |
| 204 | .features{}, | 204 | .features{ |
| 205 | .robustBufferAccess = false, | ||
| 206 | .fullDrawIndexUint32 = false, | ||
| 207 | .imageCubeArray = true, | ||
| 208 | .independentBlend = true, | ||
| 209 | .geometryShader = true, | ||
| 210 | .tessellationShader = true, | ||
| 211 | .sampleRateShading = false, | ||
| 212 | .dualSrcBlend = false, | ||
| 213 | .logicOp = false, | ||
| 214 | .multiDrawIndirect = false, | ||
| 215 | .drawIndirectFirstInstance = false, | ||
| 216 | .depthClamp = true, | ||
| 217 | .depthBiasClamp = true, | ||
| 218 | .fillModeNonSolid = false, | ||
| 219 | .depthBounds = false, | ||
| 220 | .wideLines = false, | ||
| 221 | .largePoints = true, | ||
| 222 | .alphaToOne = false, | ||
| 223 | .multiViewport = true, | ||
| 224 | .samplerAnisotropy = true, | ||
| 225 | .textureCompressionETC2 = false, | ||
| 226 | .textureCompressionASTC_LDR = is_optimal_astc_supported, | ||
| 227 | .textureCompressionBC = false, | ||
| 228 | .occlusionQueryPrecise = true, | ||
| 229 | .pipelineStatisticsQuery = false, | ||
| 230 | .vertexPipelineStoresAndAtomics = true, | ||
| 231 | .fragmentStoresAndAtomics = true, | ||
| 232 | .shaderTessellationAndGeometryPointSize = false, | ||
| 233 | .shaderImageGatherExtended = true, | ||
| 234 | .shaderStorageImageExtendedFormats = false, | ||
| 235 | .shaderStorageImageMultisample = is_shader_storage_image_multisample, | ||
| 236 | .shaderStorageImageReadWithoutFormat = is_formatless_image_load_supported, | ||
| 237 | .shaderStorageImageWriteWithoutFormat = true, | ||
| 238 | .shaderUniformBufferArrayDynamicIndexing = false, | ||
| 239 | .shaderSampledImageArrayDynamicIndexing = false, | ||
| 240 | .shaderStorageBufferArrayDynamicIndexing = false, | ||
| 241 | .shaderStorageImageArrayDynamicIndexing = false, | ||
| 242 | .shaderClipDistance = false, | ||
| 243 | .shaderCullDistance = false, | ||
| 244 | .shaderFloat64 = false, | ||
| 245 | .shaderInt64 = false, | ||
| 246 | .shaderInt16 = false, | ||
| 247 | .shaderResourceResidency = false, | ||
| 248 | .shaderResourceMinLod = false, | ||
| 249 | .sparseBinding = false, | ||
| 250 | .sparseResidencyBuffer = false, | ||
| 251 | .sparseResidencyImage2D = false, | ||
| 252 | .sparseResidencyImage3D = false, | ||
| 253 | .sparseResidency2Samples = false, | ||
| 254 | .sparseResidency4Samples = false, | ||
| 255 | .sparseResidency8Samples = false, | ||
| 256 | .sparseResidency16Samples = false, | ||
| 257 | .sparseResidencyAliased = false, | ||
| 258 | .variableMultisampleRate = false, | ||
| 259 | .inheritedQueries = false, | ||
| 260 | }, | ||
| 205 | }; | 261 | }; |
| 206 | const void* first_next = &features2; | 262 | const void* first_next = &features2; |
| 207 | void** next = &features2.pNext; | 263 | void** next = &features2.pNext; |
| 208 | 264 | ||
| 209 | features2.features = { | ||
| 210 | .robustBufferAccess = false, | ||
| 211 | .fullDrawIndexUint32 = false, | ||
| 212 | .imageCubeArray = true, | ||
| 213 | .independentBlend = true, | ||
| 214 | .geometryShader = true, | ||
| 215 | .tessellationShader = true, | ||
| 216 | .sampleRateShading = false, | ||
| 217 | .dualSrcBlend = false, | ||
| 218 | .logicOp = false, | ||
| 219 | .multiDrawIndirect = false, | ||
| 220 | .drawIndirectFirstInstance = false, | ||
| 221 | .depthClamp = true, | ||
| 222 | .depthBiasClamp = true, | ||
| 223 | .fillModeNonSolid = false, | ||
| 224 | .depthBounds = false, | ||
| 225 | .wideLines = false, | ||
| 226 | .largePoints = true, | ||
| 227 | .alphaToOne = false, | ||
| 228 | .multiViewport = true, | ||
| 229 | .samplerAnisotropy = true, | ||
| 230 | .textureCompressionETC2 = false, | ||
| 231 | .textureCompressionASTC_LDR = is_optimal_astc_supported, | ||
| 232 | .textureCompressionBC = false, | ||
| 233 | .occlusionQueryPrecise = true, | ||
| 234 | .pipelineStatisticsQuery = false, | ||
| 235 | .vertexPipelineStoresAndAtomics = true, | ||
| 236 | .fragmentStoresAndAtomics = true, | ||
| 237 | .shaderTessellationAndGeometryPointSize = false, | ||
| 238 | .shaderImageGatherExtended = true, | ||
| 239 | .shaderStorageImageExtendedFormats = false, | ||
| 240 | .shaderStorageImageMultisample = is_shader_storage_image_multisample, | ||
| 241 | .shaderStorageImageReadWithoutFormat = is_formatless_image_load_supported, | ||
| 242 | .shaderStorageImageWriteWithoutFormat = true, | ||
| 243 | .shaderUniformBufferArrayDynamicIndexing = false, | ||
| 244 | .shaderSampledImageArrayDynamicIndexing = false, | ||
| 245 | .shaderStorageBufferArrayDynamicIndexing = false, | ||
| 246 | .shaderStorageImageArrayDynamicIndexing = false, | ||
| 247 | .shaderClipDistance = false, | ||
| 248 | .shaderCullDistance = false, | ||
| 249 | .shaderFloat64 = false, | ||
| 250 | .shaderInt64 = false, | ||
| 251 | .shaderInt16 = false, | ||
| 252 | .shaderResourceResidency = false, | ||
| 253 | .shaderResourceMinLod = false, | ||
| 254 | .sparseBinding = false, | ||
| 255 | .sparseResidencyBuffer = false, | ||
| 256 | .sparseResidencyImage2D = false, | ||
| 257 | .sparseResidencyImage3D = false, | ||
| 258 | .sparseResidency2Samples = false, | ||
| 259 | .sparseResidency4Samples = false, | ||
| 260 | .sparseResidency8Samples = false, | ||
| 261 | .sparseResidency16Samples = false, | ||
| 262 | .sparseResidencyAliased = false, | ||
| 263 | .variableMultisampleRate = false, | ||
| 264 | .inheritedQueries = false, | ||
| 265 | }; | ||
| 266 | VkPhysicalDeviceTimelineSemaphoreFeaturesKHR timeline_semaphore{ | 265 | VkPhysicalDeviceTimelineSemaphoreFeaturesKHR timeline_semaphore{ |
| 267 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR, | 266 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR, |
| 268 | .pNext = nullptr, | 267 | .pNext = nullptr, |