summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp119
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,