Lines Matching +full:- +full:- +full:features
7 // http://www.apache.org/licenses/LICENSE-2.0
37 static const VkPhysicalDeviceFeatures features{ in getFeatures() local
99 return features; in getFeatures()
103 static void getPhysicalDeviceSamplerYcbcrConversionFeatures(T *features) in getPhysicalDeviceSamplerYcbcrConversionFeatures() argument
105 features->samplerYcbcrConversion = VK_TRUE; in getPhysicalDeviceSamplerYcbcrConversionFeatures()
109 static void getPhysicalDevice16BitStorageFeatures(T *features) in getPhysicalDevice16BitStorageFeatures() argument
111 features->storageBuffer16BitAccess = VK_FALSE; in getPhysicalDevice16BitStorageFeatures()
112 features->storageInputOutput16 = VK_FALSE; in getPhysicalDevice16BitStorageFeatures()
113 features->storagePushConstant16 = VK_FALSE; in getPhysicalDevice16BitStorageFeatures()
114 features->uniformAndStorageBuffer16BitAccess = VK_FALSE; in getPhysicalDevice16BitStorageFeatures()
118 static void getPhysicalDeviceVariablePointersFeatures(T *features) in getPhysicalDeviceVariablePointersFeatures() argument
120 features->variablePointersStorageBuffer = VK_FALSE; in getPhysicalDeviceVariablePointersFeatures()
121 features->variablePointers = VK_FALSE; in getPhysicalDeviceVariablePointersFeatures()
125 static void getPhysicalDevice8BitStorageFeaturesKHR(T *features) in getPhysicalDevice8BitStorageFeaturesKHR() argument
127 features->storageBuffer8BitAccess = VK_FALSE; in getPhysicalDevice8BitStorageFeaturesKHR()
128 features->uniformAndStorageBuffer8BitAccess = VK_FALSE; in getPhysicalDevice8BitStorageFeaturesKHR()
129 features->storagePushConstant8 = VK_FALSE; in getPhysicalDevice8BitStorageFeaturesKHR()
133 static void getPhysicalDeviceMultiviewFeatures(T *features) in getPhysicalDeviceMultiviewFeatures() argument
135 features->multiview = VK_TRUE; in getPhysicalDeviceMultiviewFeatures()
136 features->multiviewGeometryShader = VK_FALSE; in getPhysicalDeviceMultiviewFeatures()
137 features->multiviewTessellationShader = VK_FALSE; in getPhysicalDeviceMultiviewFeatures()
141 static void getPhysicalDeviceProtectedMemoryFeatures(T *features) in getPhysicalDeviceProtectedMemoryFeatures() argument
143 features->protectedMemory = VK_FALSE; in getPhysicalDeviceProtectedMemoryFeatures()
147 static void getPhysicalDeviceShaderDrawParameterFeatures(T *features) in getPhysicalDeviceShaderDrawParameterFeatures() argument
149 features->shaderDrawParameters = VK_FALSE; in getPhysicalDeviceShaderDrawParameterFeatures()
153 static void getPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR(T *features) in getPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR() argument
155 features->separateDepthStencilLayouts = VK_TRUE; in getPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR()
159 static void getPhysicalDeviceLineRasterizationFeaturesEXT(T *features) in getPhysicalDeviceLineRasterizationFeaturesEXT() argument
161 features->rectangularLines = VK_TRUE; in getPhysicalDeviceLineRasterizationFeaturesEXT()
162 features->bresenhamLines = VK_TRUE; in getPhysicalDeviceLineRasterizationFeaturesEXT()
163 features->smoothLines = VK_FALSE; in getPhysicalDeviceLineRasterizationFeaturesEXT()
164 features->stippledRectangularLines = VK_FALSE; in getPhysicalDeviceLineRasterizationFeaturesEXT()
165 features->stippledBresenhamLines = VK_FALSE; in getPhysicalDeviceLineRasterizationFeaturesEXT()
166 features->stippledSmoothLines = VK_FALSE; in getPhysicalDeviceLineRasterizationFeaturesEXT()
170 static void getPhysicalDeviceProvokingVertexFeaturesEXT(T *features) in getPhysicalDeviceProvokingVertexFeaturesEXT() argument
172 features->provokingVertexLast = VK_TRUE; in getPhysicalDeviceProvokingVertexFeaturesEXT()
173 features->transformFeedbackPreservesProvokingVertex = VK_FALSE; in getPhysicalDeviceProvokingVertexFeaturesEXT()
177 static void getPhysicalDeviceHostQueryResetFeatures(T *features) in getPhysicalDeviceHostQueryResetFeatures() argument
179 features->hostQueryReset = VK_TRUE; in getPhysicalDeviceHostQueryResetFeatures()
183 static void getPhysicalDevicePipelineCreationCacheControlFeatures(T *features) in getPhysicalDevicePipelineCreationCacheControlFeatures() argument
185 features->pipelineCreationCacheControl = VK_TRUE; in getPhysicalDevicePipelineCreationCacheControlFeatures()
189 static void getPhysicalDeviceImageRobustnessFeatures(T *features) in getPhysicalDeviceImageRobustnessFeatures() argument
191 features->robustImageAccess = VK_TRUE; in getPhysicalDeviceImageRobustnessFeatures()
195 static void getPhysicalDeviceShaderDrawParametersFeatures(T *features) in getPhysicalDeviceShaderDrawParametersFeatures() argument
197 features->shaderDrawParameters = VK_FALSE; in getPhysicalDeviceShaderDrawParametersFeatures()
201 static void getPhysicalDeviceVulkan11Features(T *features) in getPhysicalDeviceVulkan11Features() argument
203 getPhysicalDevice16BitStorageFeatures(features); in getPhysicalDeviceVulkan11Features()
204 getPhysicalDeviceMultiviewFeatures(features); in getPhysicalDeviceVulkan11Features()
205 getPhysicalDeviceVariablePointersFeatures(features); in getPhysicalDeviceVulkan11Features()
206 getPhysicalDeviceProtectedMemoryFeatures(features); in getPhysicalDeviceVulkan11Features()
207 getPhysicalDeviceSamplerYcbcrConversionFeatures(features); in getPhysicalDeviceVulkan11Features()
208 getPhysicalDeviceShaderDrawParametersFeatures(features); in getPhysicalDeviceVulkan11Features()
212 static void getPhysicalDeviceImagelessFramebufferFeatures(T *features) in getPhysicalDeviceImagelessFramebufferFeatures() argument
214 features->imagelessFramebuffer = VK_TRUE; in getPhysicalDeviceImagelessFramebufferFeatures()
218 static void getPhysicalDeviceShaderSubgroupExtendedTypesFeatures(T *features) in getPhysicalDeviceShaderSubgroupExtendedTypesFeatures() argument
220 features->shaderSubgroupExtendedTypes = VK_TRUE; in getPhysicalDeviceShaderSubgroupExtendedTypesFeatures()
224 static void getPhysicalDeviceScalarBlockLayoutFeatures(T *features) in getPhysicalDeviceScalarBlockLayoutFeatures() argument
226 features->scalarBlockLayout = VK_TRUE; in getPhysicalDeviceScalarBlockLayoutFeatures()
231 static void getPhysicalDeviceDeviceMemoryReportFeaturesEXT(T *features) in getPhysicalDeviceDeviceMemoryReportFeaturesEXT() argument
233 features->deviceMemoryReport = VK_TRUE; in getPhysicalDeviceDeviceMemoryReportFeaturesEXT()
238 static void getPhysicalDeviceUniformBufferStandardLayoutFeatures(T *features) in getPhysicalDeviceUniformBufferStandardLayoutFeatures() argument
240 features->uniformBufferStandardLayout = VK_TRUE; in getPhysicalDeviceUniformBufferStandardLayoutFeatures()
244 static void getPhysicalDeviceDescriptorIndexingFeatures(T *features) in getPhysicalDeviceDescriptorIndexingFeatures() argument
246 features->shaderInputAttachmentArrayDynamicIndexing = VK_FALSE; in getPhysicalDeviceDescriptorIndexingFeatures()
247 features->shaderUniformTexelBufferArrayDynamicIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
248 features->shaderStorageTexelBufferArrayDynamicIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
249 features->shaderUniformBufferArrayNonUniformIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
250 features->shaderSampledImageArrayNonUniformIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
251 features->shaderStorageBufferArrayNonUniformIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
252 features->shaderStorageImageArrayNonUniformIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
253 features->shaderInputAttachmentArrayNonUniformIndexing = VK_FALSE; in getPhysicalDeviceDescriptorIndexingFeatures()
254 features->shaderUniformTexelBufferArrayNonUniformIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
255 features->shaderStorageTexelBufferArrayNonUniformIndexing = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
256 features->descriptorBindingUniformBufferUpdateAfterBind = VK_FALSE; in getPhysicalDeviceDescriptorIndexingFeatures()
257 features->descriptorBindingSampledImageUpdateAfterBind = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
258 features->descriptorBindingStorageImageUpdateAfterBind = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
259 features->descriptorBindingStorageBufferUpdateAfterBind = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
260 features->descriptorBindingUniformTexelBufferUpdateAfterBind = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
261 features->descriptorBindingStorageTexelBufferUpdateAfterBind = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
262 features->descriptorBindingUpdateUnusedWhilePending = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
263 features->descriptorBindingPartiallyBound = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
264 features->descriptorBindingVariableDescriptorCount = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
265 features->runtimeDescriptorArray = VK_TRUE; in getPhysicalDeviceDescriptorIndexingFeatures()
269 static void getPhysicalDeviceVulkanMemoryModelFeatures(T *features) in getPhysicalDeviceVulkanMemoryModelFeatures() argument
271 features->vulkanMemoryModel = VK_TRUE; in getPhysicalDeviceVulkanMemoryModelFeatures()
272 features->vulkanMemoryModelDeviceScope = VK_TRUE; in getPhysicalDeviceVulkanMemoryModelFeatures()
273 features->vulkanMemoryModelAvailabilityVisibilityChains = VK_TRUE; in getPhysicalDeviceVulkanMemoryModelFeatures()
277 static void getPhysicalDeviceTimelineSemaphoreFeatures(T *features) in getPhysicalDeviceTimelineSemaphoreFeatures() argument
279 features->timelineSemaphore = VK_TRUE; in getPhysicalDeviceTimelineSemaphoreFeatures()
283 static void getPhysicalDeviceShaderAtomicInt64Features(T *features) in getPhysicalDeviceShaderAtomicInt64Features() argument
285 features->shaderBufferInt64Atomics = VK_FALSE; in getPhysicalDeviceShaderAtomicInt64Features()
286 features->shaderSharedInt64Atomics = VK_FALSE; in getPhysicalDeviceShaderAtomicInt64Features()
290 static void getPhysicalDeviceShaderFloat16Int8Features(T *features) in getPhysicalDeviceShaderFloat16Int8Features() argument
292 features->shaderFloat16 = VK_FALSE; in getPhysicalDeviceShaderFloat16Int8Features()
293 features->shaderInt8 = VK_FALSE; in getPhysicalDeviceShaderFloat16Int8Features()
297 static void getPhysicalDeviceBufferDeviceAddressFeatures(T *features) in getPhysicalDeviceBufferDeviceAddressFeatures() argument
299 features->bufferDeviceAddress = VK_TRUE; in getPhysicalDeviceBufferDeviceAddressFeatures()
300 features->bufferDeviceAddressCaptureReplay = VK_FALSE; in getPhysicalDeviceBufferDeviceAddressFeatures()
301 features->bufferDeviceAddressMultiDevice = VK_FALSE; in getPhysicalDeviceBufferDeviceAddressFeatures()
305 static void getPhysicalDeviceDynamicRenderingFeatures(T *features) in getPhysicalDeviceDynamicRenderingFeatures() argument
307 features->dynamicRendering = VK_TRUE; in getPhysicalDeviceDynamicRenderingFeatures()
311 static void getPhysicalDeviceInlineUniformBlockFeatures(T *features) in getPhysicalDeviceInlineUniformBlockFeatures() argument
313 features->inlineUniformBlock = VK_TRUE; in getPhysicalDeviceInlineUniformBlockFeatures()
314 features->descriptorBindingInlineUniformBlockUpdateAfterBind = VK_TRUE; in getPhysicalDeviceInlineUniformBlockFeatures()
318 static void getPhysicalDevicePrivateDataFeatures(T *features) in getPhysicalDevicePrivateDataFeatures() argument
320 features->privateData = VK_TRUE; in getPhysicalDevicePrivateDataFeatures()
324 static void getPhysicalDeviceTextureCompressionASTCHDRFeatures(T *features) in getPhysicalDeviceTextureCompressionASTCHDRFeatures() argument
326 features->textureCompressionASTC_HDR = VK_FALSE; in getPhysicalDeviceTextureCompressionASTCHDRFeatures()
330 static void getPhysicalDeviceShaderDemoteToHelperInvocationFeatures(T *features) in getPhysicalDeviceShaderDemoteToHelperInvocationFeatures() argument
332 features->shaderDemoteToHelperInvocation = VK_TRUE; in getPhysicalDeviceShaderDemoteToHelperInvocationFeatures()
336 static void getPhysicalDeviceShaderTerminateInvocationFeatures(T *features) in getPhysicalDeviceShaderTerminateInvocationFeatures() argument
338 features->shaderTerminateInvocation = VK_TRUE; in getPhysicalDeviceShaderTerminateInvocationFeatures()
342 static void getPhysicalDeviceSubgroupSizeControlFeatures(T *features) in getPhysicalDeviceSubgroupSizeControlFeatures() argument
344 features->subgroupSizeControl = VK_TRUE; in getPhysicalDeviceSubgroupSizeControlFeatures()
345 features->computeFullSubgroups = VK_TRUE; in getPhysicalDeviceSubgroupSizeControlFeatures()
349 static void getPhysicalDeviceSynchronization2Features(T *features) in getPhysicalDeviceSynchronization2Features() argument
351 features->synchronization2 = VK_TRUE; in getPhysicalDeviceSynchronization2Features()
355 static void getPhysicalDeviceShaderIntegerDotProductFeatures(T *features) in getPhysicalDeviceShaderIntegerDotProductFeatures() argument
357 features->shaderIntegerDotProduct = VK_TRUE; in getPhysicalDeviceShaderIntegerDotProductFeatures()
361 static void getPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(T *features) in getPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures() argument
363 features->shaderZeroInitializeWorkgroupMemory = VK_TRUE; in getPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures()
367 static void getPhysicalDeviceMaintenance4Features(T *features) in getPhysicalDeviceMaintenance4Features() argument
369 features->maintenance4 = VK_TRUE; in getPhysicalDeviceMaintenance4Features()
373 static void getPhysicalDevicePrimitiveTopologyListRestartFeatures(T *features) in getPhysicalDevicePrimitiveTopologyListRestartFeatures() argument
375 features->primitiveTopologyListRestart = VK_TRUE; in getPhysicalDevicePrimitiveTopologyListRestartFeatures()
376 features->primitiveTopologyPatchListRestart = VK_FALSE; in getPhysicalDevicePrimitiveTopologyListRestartFeatures()
380 static void getPhysicalDevicePipelineRobustnessFeatures(T *features) in getPhysicalDevicePipelineRobustnessFeatures() argument
382 features->pipelineRobustness = VK_TRUE; in getPhysicalDevicePipelineRobustnessFeatures()
386 static void getPhysicalDeviceGraphicsPipelineLibraryFeatures(T *features) in getPhysicalDeviceGraphicsPipelineLibraryFeatures() argument
388 features->graphicsPipelineLibrary = VK_TRUE; in getPhysicalDeviceGraphicsPipelineLibraryFeatures()
392 static void getPhysicalDeviceGlobalPriorityQueryFeatures(T *features) in getPhysicalDeviceGlobalPriorityQueryFeatures() argument
394 features->globalPriorityQuery = VK_TRUE; in getPhysicalDeviceGlobalPriorityQueryFeatures()
398 static void getPhysicalDeviceSwapchainMaintenance1FeaturesKHR(T *features) in getPhysicalDeviceSwapchainMaintenance1FeaturesKHR() argument
400 features->swapchainMaintenance1 = VK_TRUE; in getPhysicalDeviceSwapchainMaintenance1FeaturesKHR()
404 static void getPhysicalDeviceVulkan12Features(T *features) in getPhysicalDeviceVulkan12Features() argument
406 features->samplerMirrorClampToEdge = VK_TRUE; in getPhysicalDeviceVulkan12Features()
407 features->drawIndirectCount = VK_FALSE; in getPhysicalDeviceVulkan12Features()
408 getPhysicalDevice8BitStorageFeaturesKHR(features); in getPhysicalDeviceVulkan12Features()
409 getPhysicalDeviceShaderAtomicInt64Features(features); in getPhysicalDeviceVulkan12Features()
410 getPhysicalDeviceShaderFloat16Int8Features(features); in getPhysicalDeviceVulkan12Features()
411 features->descriptorIndexing = VK_TRUE; in getPhysicalDeviceVulkan12Features()
412 getPhysicalDeviceDescriptorIndexingFeatures(features); in getPhysicalDeviceVulkan12Features()
413 features->samplerFilterMinmax = VK_FALSE; in getPhysicalDeviceVulkan12Features()
414 getPhysicalDeviceScalarBlockLayoutFeatures(features); in getPhysicalDeviceVulkan12Features()
415 getPhysicalDeviceImagelessFramebufferFeatures(features); in getPhysicalDeviceVulkan12Features()
416 getPhysicalDeviceUniformBufferStandardLayoutFeatures(features); in getPhysicalDeviceVulkan12Features()
417 getPhysicalDeviceShaderSubgroupExtendedTypesFeatures(features); in getPhysicalDeviceVulkan12Features()
418 getPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR(features); in getPhysicalDeviceVulkan12Features()
419 getPhysicalDeviceHostQueryResetFeatures(features); in getPhysicalDeviceVulkan12Features()
420 getPhysicalDeviceTimelineSemaphoreFeatures(features); in getPhysicalDeviceVulkan12Features()
421 getPhysicalDeviceBufferDeviceAddressFeatures(features); in getPhysicalDeviceVulkan12Features()
422 getPhysicalDeviceVulkanMemoryModelFeatures(features); in getPhysicalDeviceVulkan12Features()
423 features->shaderOutputViewportIndex = VK_FALSE; in getPhysicalDeviceVulkan12Features()
424 features->shaderOutputLayer = VK_FALSE; in getPhysicalDeviceVulkan12Features()
425 features->subgroupBroadcastDynamicId = VK_TRUE; in getPhysicalDeviceVulkan12Features()
429 static void getPhysicalDeviceDepthClipEnableFeaturesEXT(T *features) in getPhysicalDeviceDepthClipEnableFeaturesEXT() argument
431 features->depthClipEnable = VK_TRUE; in getPhysicalDeviceDepthClipEnableFeaturesEXT()
435 static void getPhysicalDeviceVulkan13Features(T *features) in getPhysicalDeviceVulkan13Features() argument
437 getPhysicalDeviceImageRobustnessFeatures(features); in getPhysicalDeviceVulkan13Features()
438 getPhysicalDeviceInlineUniformBlockFeatures(features); in getPhysicalDeviceVulkan13Features()
439 getPhysicalDevicePipelineCreationCacheControlFeatures(features); in getPhysicalDeviceVulkan13Features()
440 getPhysicalDevicePrivateDataFeatures(features); in getPhysicalDeviceVulkan13Features()
441 getPhysicalDeviceShaderDemoteToHelperInvocationFeatures(features); in getPhysicalDeviceVulkan13Features()
442 getPhysicalDeviceShaderTerminateInvocationFeatures(features); in getPhysicalDeviceVulkan13Features()
443 getPhysicalDeviceSubgroupSizeControlFeatures(features); in getPhysicalDeviceVulkan13Features()
444 getPhysicalDeviceSynchronization2Features(features); in getPhysicalDeviceVulkan13Features()
445 getPhysicalDeviceTextureCompressionASTCHDRFeatures(features); in getPhysicalDeviceVulkan13Features()
446 getPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(features); in getPhysicalDeviceVulkan13Features()
447 getPhysicalDeviceDynamicRenderingFeatures(features); in getPhysicalDeviceVulkan13Features()
448 getPhysicalDeviceShaderIntegerDotProductFeatures(features); in getPhysicalDeviceVulkan13Features()
449 getPhysicalDeviceMaintenance4Features(features); in getPhysicalDeviceVulkan13Features()
452 …tPhysicalDeviceCustomBorderColorFeaturesEXT(VkPhysicalDeviceCustomBorderColorFeaturesEXT *features) in getPhysicalDeviceCustomBorderColorFeaturesEXT() argument
454 features->customBorderColors = VK_TRUE; in getPhysicalDeviceCustomBorderColorFeaturesEXT()
455 features->customBorderColorWithoutFormat = VK_TRUE; in getPhysicalDeviceCustomBorderColorFeaturesEXT()
458 …eviceBlendOperationAdvancedFeaturesEXT(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT *features) in getPhysicalDeviceBlendOperationAdvancedFeaturesEXT() argument
460 features->advancedBlendCoherentOperations = VK_FALSE; in getPhysicalDeviceBlendOperationAdvancedFeaturesEXT()
463 …calDeviceExtendedDynamicStateFeaturesEXT(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT *features) in getPhysicalDeviceExtendedDynamicStateFeaturesEXT() argument
465 features->extendedDynamicState = VK_TRUE; in getPhysicalDeviceExtendedDynamicStateFeaturesEXT()
468 …atic void getPhysicalDevice4444FormatsFeaturesEXT(VkPhysicalDevice4444FormatsFeaturesEXT *features) in getPhysicalDevice4444FormatsFeaturesEXT() argument
470 features->formatA4R4G4B4 = VK_TRUE; in getPhysicalDevice4444FormatsFeaturesEXT()
471 features->formatA4B4G4R4 = VK_TRUE; in getPhysicalDevice4444FormatsFeaturesEXT()
474 …ttachmentAccessFeaturesEXT(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT *features) in getPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT() argument
476 features->rasterizationOrderColorAttachmentAccess = VK_TRUE; in getPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT()
477 features->rasterizationOrderDepthAttachmentAccess = VK_TRUE; in getPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT()
478 features->rasterizationOrderStencilAttachmentAccess = VK_TRUE; in getPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT()
481 …getPhysicalDeviceDepthClipControlFeaturesExt(VkPhysicalDeviceDepthClipControlFeaturesEXT *features) in getPhysicalDeviceDepthClipControlFeaturesExt() argument
483 features->depthClipControl = VK_TRUE; in getPhysicalDeviceDepthClipControlFeaturesExt()
486 void PhysicalDevice::getFeatures2(VkPhysicalDeviceFeatures2 *features) const in getFeatures2()
488 features->features = getFeatures(); in getFeatures2()
489 VkBaseOutStructure *curExtension = reinterpret_cast<VkBaseOutStructure *>(features->pNext); in getFeatures2()
492 switch(curExtension->sType) in getFeatures2()
649 UNSUPPORTED("curExtension->sType: %s", vk::Stringify(curExtension->sType).c_str()); in getFeatures2()
652 curExtension = reinterpret_cast<VkBaseOutStructure *>(curExtension->pNext); in getFeatures2()
666 1 << (vk::MAX_IMAGE_LEVELS_1D - 1), // maxImageDimension1D in getLimits()
667 1 << (vk::MAX_IMAGE_LEVELS_2D - 1), // maxImageDimension2D in getLimits()
668 1 << (vk::MAX_IMAGE_LEVELS_3D - 1), // maxImageDimension3D in getLimits()
669 1 << (vk::MAX_IMAGE_LEVELS_CUBE - 1), // maxImageDimensionCube in getLimits()
731 { -2 * sw::MAX_VIEWPORT_DIM, in getLimits()
732 2 * sw::MAX_VIEWPORT_DIM - 1 }, // viewportBoundsRange[2] in getLimits()
742 -0.5, // minInterpolationOffset in getLimits()
781 auto getProperties = [&]() -> VkPhysicalDeviceProperties { in getProperties()
808 memset(properties->deviceUUID, 0, VK_UUID_SIZE); in getIdProperties()
809 memset(properties->driverUUID, 0, VK_UUID_SIZE); in getIdProperties()
810 memset(properties->deviceLUID, 0, VK_LUID_SIZE); in getIdProperties()
812 memcpy(properties->deviceUUID, SWIFTSHADER_UUID, VK_UUID_SIZE); in getIdProperties()
813 *((uint64_t *)properties->driverUUID) = DRIVER_VERSION; in getIdProperties()
815 properties->deviceNodeMask = 0; in getIdProperties()
816 properties->deviceLUIDValid = VK_FALSE; in getIdProperties()
827 properties->maxMemoryAllocationSize = MAX_MEMORY_ALLOCATION_SIZE; in getMaintenance3Properties()
828 properties->maxPerSetDescriptors = 1024; in getMaintenance3Properties()
834 properties->maxBufferSize = MAX_MEMORY_ALLOCATION_SIZE; in getMaintenance4Properties()
850 properties->maxMultiviewViewCount = 6; in getMultiviewProperties()
851 properties->maxMultiviewInstanceIndex = 1u << 27; in getMultiviewProperties()
862 properties->pointClippingBehavior = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES; in getPointClippingProperties()
873 properties->protectedNoFault = VK_FALSE; in getProtectedMemoryProperties()
884 properties->subgroupSize = sw::SIMD::Width; in getSubgroupProperties()
885 …properties->supportedStages = VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADE… in getSubgroupProperties()
886 properties->supportedOperations = in getSubgroupProperties()
894 properties->quadOperationsInAllStages = VK_FALSE; in getSubgroupProperties()
911 properties->subgroupSize = subgroupProperties.subgroupSize; in getProperties()
912 properties->subgroupSupportedStages = subgroupProperties.supportedStages; in getProperties()
913 properties->subgroupSupportedOperations = subgroupProperties.supportedOperations; in getProperties()
914 properties->subgroupQuadOperationsInAllStages = subgroupProperties.quadOperationsInAllStages; in getProperties()
924 VkExternalMemoryProperties *extMemProperties = &properties->externalMemoryProperties; in getProperties()
928 extMemProperties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; in getProperties()
929 extMemProperties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; in getProperties()
930 …extMemProperties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL… in getProperties()
937 …extMemProperties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_B… in getProperties()
938 …extMemProperties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_… in getProperties()
939 …extMemProperties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL… in getProperties()
946 extMemProperties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA; in getProperties()
947 …extMemProperties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FU… in getProperties()
948 …extMemProperties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL… in getProperties()
952 extMemProperties->compatibleHandleTypes = 0; in getProperties()
953 extMemProperties->exportFromImportedHandleTypes = 0; in getProperties()
954 extMemProperties->externalMemoryFeatures = 0; in getProperties()
959 VkExternalMemoryProperties *extMemProperties = &properties->externalMemoryProperties; in getProperties()
963 extMemProperties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; in getProperties()
964 extMemProperties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; in getProperties()
965 …extMemProperties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL… in getProperties()
972 …extMemProperties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_B… in getProperties()
973 …extMemProperties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_… in getProperties()
974 …extMemProperties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL… in getProperties()
981 extMemProperties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA; in getProperties()
982 …extMemProperties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FU… in getProperties()
983 …extMemProperties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL… in getProperties()
987 extMemProperties->compatibleHandleTypes = 0; in getProperties()
988 extMemProperties->exportFromImportedHandleTypes = 0; in getProperties()
989 extMemProperties->externalMemoryFeatures = 0; in getProperties()
994 …properties->combinedImageSamplerDescriptorCount = 1; // Need only one descriptor for YCbCr sampli… in getProperties()
1000 properties->sharedImage = VK_FALSE; in getProperties()
1006 …/www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-external-android-har… in getProperties()
1009 ASSERT((pImageFormatInfo->flags & VK_IMAGE_CREATE_PROTECTED_BIT) == 0); in getProperties()
1021 …if((pImageFormatInfo->usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) || (pImageFormatInfo->usage & V… in getProperties()
1026 if(pImageFormatInfo->flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) in getProperties()
1031 if(pImageFormatInfo->flags & VK_IMAGE_CREATE_PROTECTED_BIT) in getProperties()
1036 ahbProperties->androidHardwareBufferUsage = ahbUsage; in getProperties()
1042 VkExternalMemoryProperties *properties = &pExternalBufferProperties->externalMemoryProperties; in getProperties()
1045 const VkExternalMemoryHandleTypeFlagBits *handleType = &pExternalBufferInfo->handleType; in getProperties()
1051 properties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; in getProperties()
1052 properties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; in getProperties()
1053 …properties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL_MEMOR… in getProperties()
1060 …properties->compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_AND… in getProperties()
1061 …properties->exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER… in getProperties()
1062 …properties->externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT | VK_EXTERNAL_MEMOR… in getProperties()
1066 properties->compatibleHandleTypes = 0; in getProperties()
1067 properties->exportFromImportedHandleTypes = 0; in getProperties()
1068 properties->externalMemoryFeatures = 0; in getProperties()
1073 pExternalFenceProperties->compatibleHandleTypes = 0; in getProperties()
1074 pExternalFenceProperties->exportFromImportedHandleTypes = 0; in getProperties()
1075 pExternalFenceProperties->externalFenceFeatures = 0; in getProperties()
1080 …for(const auto *nextInfo = reinterpret_cast<const VkBaseInStructure *>(pExternalSemaphoreInfo->pNe… in getProperties()
1081 nextInfo != nullptr; nextInfo = nextInfo->pNext) in getProperties()
1083 switch(nextInfo->sType) in getProperties()
1089 if(tlsInfo->semaphoreType == VK_SEMAPHORE_TYPE_TIMELINE) in getProperties()
1091 pExternalSemaphoreProperties->compatibleHandleTypes = 0; in getProperties()
1092 pExternalSemaphoreProperties->exportFromImportedHandleTypes = 0; in getProperties()
1093 pExternalSemaphoreProperties->externalSemaphoreFeatures = 0; in getProperties()
1099 WARN("nextInfo->sType = %s", vk::Stringify(nextInfo->sType).c_str()); in getProperties()
1105 if(pExternalSemaphoreInfo->handleType == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT) in getProperties()
1107 …pExternalSemaphoreProperties->compatibleHandleTypes = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_… in getProperties()
1108 …pExternalSemaphoreProperties->exportFromImportedHandleTypes = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OP… in getProperties()
1109 …pExternalSemaphoreProperties->externalSemaphoreFeatures = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE… in getProperties()
1114 …if(pExternalSemaphoreInfo->handleType == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSI… in getProperties()
1116 …pExternalSemaphoreProperties->compatibleHandleTypes = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVE… in getProperties()
1117 …pExternalSemaphoreProperties->exportFromImportedHandleTypes = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZI… in getProperties()
1118 …pExternalSemaphoreProperties->externalSemaphoreFeatures = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE… in getProperties()
1122 pExternalSemaphoreProperties->compatibleHandleTypes = 0; in getProperties()
1123 pExternalSemaphoreProperties->exportFromImportedHandleTypes = 0; in getProperties()
1124 pExternalSemaphoreProperties->externalSemaphoreFeatures = 0; in getProperties()
1129 properties->minImportedHostPointerAlignment = vk::MIN_IMPORTED_HOST_POINTER_ALIGNMENT; in getProperties()
1135 properties->driverID = VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR; in getDriverProperties()
1136 strcpy(properties->driverName, "SwiftShader driver"); in getDriverProperties()
1137 strcpy(properties->driverInfo, ""); in getDriverProperties()
1138 properties->conformanceVersion = { 1, 3, 3, 1 }; in getDriverProperties()
1148 properties->lineSubPixelPrecisionBits = vk::SUBPIXEL_PRECISION_BITS; in getProperties()
1153 properties->provokingVertexModePerPipeline = VK_TRUE; in getProperties()
1161 // sign of a zero, Nans and +/-infinity can be preserved in 32-bit floating-point in getFloatControlsProperties()
1163 // mode can be used for 32-bit floating-point types. in getFloatControlsProperties()
1170 properties->denormBehaviorIndependence = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE; in getFloatControlsProperties()
1171 properties->roundingModeIndependence = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE; in getFloatControlsProperties()
1172 properties->shaderSignedZeroInfNanPreserveFloat16 = VK_TRUE; in getFloatControlsProperties()
1173 properties->shaderSignedZeroInfNanPreserveFloat32 = VK_TRUE; in getFloatControlsProperties()
1174 properties->shaderSignedZeroInfNanPreserveFloat64 = VK_TRUE; in getFloatControlsProperties()
1175 properties->shaderDenormPreserveFloat16 = VK_FALSE; in getFloatControlsProperties()
1176 properties->shaderDenormPreserveFloat32 = VK_FALSE; in getFloatControlsProperties()
1177 properties->shaderDenormPreserveFloat64 = VK_FALSE; in getFloatControlsProperties()
1178 properties->shaderDenormFlushToZeroFloat16 = VK_FALSE; in getFloatControlsProperties()
1179 properties->shaderDenormFlushToZeroFloat32 = VK_FALSE; in getFloatControlsProperties()
1180 properties->shaderDenormFlushToZeroFloat64 = VK_FALSE; in getFloatControlsProperties()
1181 properties->shaderRoundingModeRTZFloat16 = VK_FALSE; in getFloatControlsProperties()
1182 properties->shaderRoundingModeRTZFloat32 = VK_FALSE; in getFloatControlsProperties()
1183 properties->shaderRoundingModeRTZFloat64 = VK_FALSE; in getFloatControlsProperties()
1184 properties->shaderRoundingModeRTEFloat16 = VK_FALSE; in getFloatControlsProperties()
1185 properties->shaderRoundingModeRTEFloat32 = VK_FALSE; in getFloatControlsProperties()
1186 properties->shaderRoundingModeRTEFloat64 = VK_FALSE; in getFloatControlsProperties()
1198 // the corresponding non-UpdateAfterBind limit." in getDescriptorIndexingProperties()
1202 // https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-minmax in getDescriptorIndexingProperties()
1204 properties->maxUpdateAfterBindDescriptorsInAllPools = vk::MAX_UPDATE_AFTER_BIND_DESCRIPTORS; in getDescriptorIndexingProperties()
1205 properties->shaderUniformBufferArrayNonUniformIndexingNative = VK_FALSE; in getDescriptorIndexingProperties()
1206 properties->shaderSampledImageArrayNonUniformIndexingNative = VK_FALSE; in getDescriptorIndexingProperties()
1207 properties->shaderStorageBufferArrayNonUniformIndexingNative = VK_FALSE; in getDescriptorIndexingProperties()
1208 properties->shaderStorageImageArrayNonUniformIndexingNative = VK_FALSE; in getDescriptorIndexingProperties()
1209 properties->shaderInputAttachmentArrayNonUniformIndexingNative = VK_FALSE; in getDescriptorIndexingProperties()
1210 properties->robustBufferAccessUpdateAfterBind = VK_FALSE; in getDescriptorIndexingProperties()
1211 properties->quadDivergentImplicitLod = VK_FALSE; in getDescriptorIndexingProperties()
1212 properties->maxPerStageDescriptorUpdateAfterBindSamplers = vk::MAX_UPDATE_AFTER_BIND_DESCRIPTORS; in getDescriptorIndexingProperties()
1213 …properties->maxPerStageDescriptorUpdateAfterBindUniformBuffers = limits.maxPerStageDescriptorUnifo… in getDescriptorIndexingProperties()
1214 …properties->maxPerStageDescriptorUpdateAfterBindStorageBuffers = vk::MAX_UPDATE_AFTER_BIND_DESCRIP… in getDescriptorIndexingProperties()
1215 …properties->maxPerStageDescriptorUpdateAfterBindSampledImages = vk::MAX_UPDATE_AFTER_BIND_DESCRIPT… in getDescriptorIndexingProperties()
1216 …properties->maxPerStageDescriptorUpdateAfterBindStorageImages = vk::MAX_UPDATE_AFTER_BIND_DESCRIPT… in getDescriptorIndexingProperties()
1217 …properties->maxPerStageDescriptorUpdateAfterBindInputAttachments = limits.maxPerStageDescriptorInp… in getDescriptorIndexingProperties()
1218 properties->maxPerStageUpdateAfterBindResources = vk::MAX_UPDATE_AFTER_BIND_DESCRIPTORS; in getDescriptorIndexingProperties()
1219 properties->maxDescriptorSetUpdateAfterBindSamplers = vk::MAX_UPDATE_AFTER_BIND_DESCRIPTORS; in getDescriptorIndexingProperties()
1220 properties->maxDescriptorSetUpdateAfterBindUniformBuffers = limits.maxDescriptorSetUniformBuffers; in getDescriptorIndexingProperties()
1221 …properties->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = limits.maxDescriptorSetUniformB… in getDescriptorIndexingProperties()
1222 properties->maxDescriptorSetUpdateAfterBindStorageBuffers = vk::MAX_UPDATE_AFTER_BIND_DESCRIPTORS; in getDescriptorIndexingProperties()
1223 …properties->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = limits.maxDescriptorSetStorageB… in getDescriptorIndexingProperties()
1224 properties->maxDescriptorSetUpdateAfterBindSampledImages = vk::MAX_UPDATE_AFTER_BIND_DESCRIPTORS; in getDescriptorIndexingProperties()
1225 properties->maxDescriptorSetUpdateAfterBindStorageImages = vk::MAX_UPDATE_AFTER_BIND_DESCRIPTORS; in getDescriptorIndexingProperties()
1226 …properties->maxDescriptorSetUpdateAfterBindInputAttachments = limits.maxDescriptorSetInputAttachme… in getDescriptorIndexingProperties()
1237 properties->supportedDepthResolveModes = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT | VK_RESOLVE_MODE_NONE; in getDepthStencilResolveProperties()
1238 properties->supportedStencilResolveModes = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT | VK_RESOLVE_MODE_NONE; in getDepthStencilResolveProperties()
1239 properties->independentResolveNone = VK_TRUE; in getDepthStencilResolveProperties()
1240 properties->independentResolve = VK_TRUE; in getDepthStencilResolveProperties()
1250 properties->maxCustomBorderColorSamplers = MAX_SAMPLER_ALLOCATION_COUNT; in getProperties()
1255 properties->advancedBlendMaxColorAttachments = sw::MAX_COLOR_BUFFERS; in getProperties()
1256 properties->advancedBlendIndependentBlend = VK_FALSE; in getProperties()
1257 properties->advancedBlendNonPremultipliedSrcColor = VK_FALSE; in getProperties()
1258 properties->advancedBlendNonPremultipliedDstColor = VK_FALSE; in getProperties()
1259 properties->advancedBlendCorrelatedOverlap = VK_FALSE; in getProperties()
1260 properties->advancedBlendAllOperations = VK_FALSE; in getProperties()
1268 properties->minSubgroupSize = subgroupProperties.subgroupSize; in getSubgroupSizeControlProperties()
1269 properties->maxSubgroupSize = subgroupProperties.subgroupSize; in getSubgroupSizeControlProperties()
1270 properties->maxComputeWorkgroupSubgroups = vk::MAX_COMPUTE_WORKGROUP_INVOCATIONS / in getSubgroupSizeControlProperties()
1271 properties->minSubgroupSize; in getSubgroupSizeControlProperties()
1272 properties->requiredSubgroupSizeStages = subgroupProperties.supportedStages; in getSubgroupSizeControlProperties()
1283 properties->maxInlineUniformBlockSize = MAX_INLINE_UNIFORM_BLOCK_SIZE; in getInlineUniformBlockProperties()
1284 properties->maxPerStageDescriptorInlineUniformBlocks = 4; in getInlineUniformBlockProperties()
1285 properties->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 4; in getInlineUniformBlockProperties()
1286 properties->maxDescriptorSetInlineUniformBlocks = 4; in getInlineUniformBlockProperties()
1287 properties->maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 4; in getInlineUniformBlockProperties()
1298 properties->storageTexelBufferOffsetAlignmentBytes = vk::MIN_TEXEL_BUFFER_OFFSET_ALIGNMENT; in getTexelBufferAlignmentProperties()
1299 properties->storageTexelBufferOffsetSingleTexelAlignment = VK_FALSE; in getTexelBufferAlignmentProperties()
1300 properties->uniformTexelBufferOffsetAlignmentBytes = vk::MIN_TEXEL_BUFFER_OFFSET_ALIGNMENT; in getTexelBufferAlignmentProperties()
1301 properties->uniformTexelBufferOffsetSingleTexelAlignment = VK_FALSE; in getTexelBufferAlignmentProperties()
1312 properties->integerDotProduct8BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1313 properties->integerDotProduct8BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1314 properties->integerDotProduct8BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1315 properties->integerDotProduct4x8BitPackedUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1316 properties->integerDotProduct4x8BitPackedSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1317 properties->integerDotProduct4x8BitPackedMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1318 properties->integerDotProduct16BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1319 properties->integerDotProduct16BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1320 properties->integerDotProduct16BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1321 properties->integerDotProduct32BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1322 properties->integerDotProduct32BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1323 properties->integerDotProduct32BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1324 properties->integerDotProduct64BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1325 properties->integerDotProduct64BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1326 properties->integerDotProduct64BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1327 properties->integerDotProductAccumulatingSaturating8BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1328 properties->integerDotProductAccumulatingSaturating8BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1329 properties->integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1330 properties->integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1331 properties->integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1332 …properties->integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = VK_FAL… in getShaderIntegerDotProductProperties()
1333 properties->integerDotProductAccumulatingSaturating16BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1334 properties->integerDotProductAccumulatingSaturating16BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1335 properties->integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1336 properties->integerDotProductAccumulatingSaturating32BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1337 properties->integerDotProductAccumulatingSaturating32BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1338 properties->integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1339 properties->integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1340 properties->integerDotProductAccumulatingSaturating64BitSignedAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1341 properties->integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = VK_FALSE; in getShaderIntegerDotProductProperties()
1354 properties->graphicsPipelineLibraryFastLinking = VK_TRUE; in getGraphicsPipelineLibraryProperties()
1356 properties->graphicsPipelineLibraryIndependentInterpolationDecoration = VK_FALSE; in getGraphicsPipelineLibraryProperties()
1367 properties->filterMinmaxSingleComponentFormats = VK_FALSE; in getSamplerFilterMinmaxProperties()
1368 properties->filterMinmaxImageComponentMapping = VK_FALSE; in getSamplerFilterMinmaxProperties()
1380 properties->maxTimelineSemaphoreValueDifference = (uint64_t)-1; in getTimelineSemaphoreProperties()
1392 properties->defaultRobustnessStorageBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT; in getPipelineRobustnessProperties()
1393 properties->defaultRobustnessUniformBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT; in getPipelineRobustnessProperties()
1394 properties->defaultRobustnessVertexInputs = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT; in getPipelineRobustnessProperties()
1398 …properties->defaultRobustnessImages = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EX… in getPipelineRobustnessProperties()
1414 properties->framebufferIntegerColorSampleCounts = VK_SAMPLE_COUNT_1_BIT; in getProperties()
1421 properties->maxInlineUniformTotalSize = properties->maxInlineUniformBlockSize * in getProperties()
1422 properties->maxDescriptorSetInlineUniformBlocks; in getProperties()
1447 #define CheckFeature(requested, supported, feature) (requested->feature == VK_FALSE || supported.fe…
1452 VkPhysicalDeviceFeatures2 features; in getSupportedFeatures() local
1453 features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2; in getSupportedFeatures()
1455 supported.sType = requested->sType; in getSupportedFeatures()
1457 features.pNext = &supported; in getSupportedFeatures()
1458 getFeatures2(&features); in getSupportedFeatures()
1732 static bool checkFormatUsage(VkImageUsageFlags usage, VkFormatFeatureFlags features) in checkFormatUsage() argument
1734 // Check for usage conflict with features in checkFormatUsage()
1735 if((usage & VK_IMAGE_USAGE_SAMPLED_BIT) && !(features & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) in checkFormatUsage()
1740 if((usage & VK_IMAGE_USAGE_STORAGE_BIT) && !(features & VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT)) in checkFormatUsage()
1745 …if((usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) && !(features & VK_FORMAT_FEATURE_COLOR_ATTACHMEN… in checkFormatUsage()
1750 …if((usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) && !(features & VK_FORMAT_FEATURE_DEPTH_S… in checkFormatUsage()
1755 …if((usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT) && !(features & (VK_FORMAT_FEATURE_COLOR_ATTACHME… in checkFormatUsage()
1760 if((usage & VK_IMAGE_USAGE_TRANSFER_SRC_BIT) && !(features & VK_FORMAT_FEATURE_TRANSFER_SRC_BIT)) in checkFormatUsage()
1765 if((usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT) && !(features & VK_FORMAT_FEATURE_TRANSFER_DST_BIT)) in checkFormatUsage()
1791 VkFormatFeatureFlags features; in isFormatSupported() local
1795 features = properties.linearTilingFeatures; in isFormatSupported()
1799 features = properties.optimalTilingFeatures; in isFormatSupported()
1804 features = 0; in isFormatSupported()
1807 if(features == 0) in isFormatSupported()
1813 if(!checkFormatUsage(usage, features)) in isFormatSupported()
1818 // which has already been checked. So only check non-zero stencilUsage. in isFormatSupported()
1819 if(stencilUsage != 0 && !checkFormatUsage(stencilUsage, features)) in isFormatSupported()
1847 else if(!(features & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) in isFormatSupported()
1886 // VkFormatFeatureFlags2KHR is a 64-bit extension of the 32-bit VkFormatFeatureFlags, in GetFormatProperties()
1887 // so when querying the legacy flags just return the lower 32-bit portion. in GetFormatProperties()
1888 …pFormatProperties->linearTilingFeatures = static_cast<VkFormatFeatureFlags>(formatProperties3.line… in GetFormatProperties()
1889 …pFormatProperties->optimalTilingFeatures = static_cast<VkFormatFeatureFlags>(formatProperties3.opt… in GetFormatProperties()
1890 …pFormatProperties->bufferFeatures = static_cast<VkFormatFeatureFlags>(formatProperties3.bufferFeat… in GetFormatProperties()
1895 pFormatProperties->linearTilingFeatures = 0; // Unsupported format in GetFormatProperties()
1896 pFormatProperties->optimalTilingFeatures = 0; // Unsupported format in GetFormatProperties()
1897 pFormatProperties->bufferFeatures = 0; // Unsupported format in GetFormatProperties()
2000 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2028 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2039 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2055 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2057 pFormatProperties->bufferFeatures |= in GetFormatProperties()
2106 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2109 pFormatProperties->bufferFeatures |= in GetFormatProperties()
2169 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2177 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2189 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2198 pFormatProperties->optimalTilingFeatures |= in GetFormatProperties()
2270 pFormatProperties->bufferFeatures |= in GetFormatProperties()
2321 pFormatProperties->bufferFeatures |= in GetFormatProperties()
2328 if(pFormatProperties->optimalTilingFeatures) in GetFormatProperties()
2333 pFormatProperties->linearTilingFeatures |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT | in GetFormatProperties()
2342 …pFormatProperties->linearTilingFeatures |= (pFormatProperties->optimalTilingFeatures & transferabl… in GetFormatProperties()
2351 pImageFormatProperties->sampleCounts = VK_SAMPLE_COUNT_1_BIT; in getImageFormatProperties()
2352 pImageFormatProperties->maxArrayLayers = vk::MAX_IMAGE_ARRAY_LAYERS; in getImageFormatProperties()
2353 pImageFormatProperties->maxExtent.depth = 1; in getImageFormatProperties()
2358 pImageFormatProperties->maxMipLevels = vk::MAX_IMAGE_LEVELS_1D; in getImageFormatProperties()
2359 pImageFormatProperties->maxExtent.width = 1 << (vk::MAX_IMAGE_LEVELS_1D - 1); in getImageFormatProperties()
2360 pImageFormatProperties->maxExtent.height = 1; in getImageFormatProperties()
2365 pImageFormatProperties->maxMipLevels = vk::MAX_IMAGE_LEVELS_CUBE; in getImageFormatProperties()
2366 pImageFormatProperties->maxExtent.width = 1 << (vk::MAX_IMAGE_LEVELS_CUBE - 1); in getImageFormatProperties()
2367 pImageFormatProperties->maxExtent.height = 1 << (vk::MAX_IMAGE_LEVELS_CUBE - 1); in getImageFormatProperties()
2371 pImageFormatProperties->maxMipLevels = vk::MAX_IMAGE_LEVELS_2D; in getImageFormatProperties()
2372 pImageFormatProperties->maxExtent.width = 1 << (vk::MAX_IMAGE_LEVELS_2D - 1); in getImageFormatProperties()
2373 pImageFormatProperties->maxExtent.height = 1 << (vk::MAX_IMAGE_LEVELS_2D - 1); in getImageFormatProperties()
2377 …auto features = tiling == VK_IMAGE_TILING_LINEAR ? props.linearTilingFeatures : props.optimalTilin… in getImageFormatProperties() local
2378 …if(features & (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT… in getImageFormatProperties()
2381 pImageFormatProperties->sampleCounts = getSampleCounts(); in getImageFormatProperties()
2386 pImageFormatProperties->maxMipLevels = vk::MAX_IMAGE_LEVELS_3D; in getImageFormatProperties()
2387 pImageFormatProperties->maxExtent.width = 1 << (vk::MAX_IMAGE_LEVELS_3D - 1); in getImageFormatProperties()
2388 pImageFormatProperties->maxExtent.height = 1 << (vk::MAX_IMAGE_LEVELS_3D - 1); in getImageFormatProperties()
2389 pImageFormatProperties->maxExtent.depth = 1 << (vk::MAX_IMAGE_LEVELS_3D - 1); in getImageFormatProperties()
2390 pImageFormatProperties->maxArrayLayers = 1; // no 3D + layers in getImageFormatProperties()
2397 pImageFormatProperties->maxResourceSize = 1u << 31; // Minimum value for maxResourceSize in getImageFormatProperties()
2403 pImageFormatProperties->maxMipLevels = 1; in getImageFormatProperties()
2404 pImageFormatProperties->maxArrayLayers = 1; in getImageFormatProperties()
2405 pImageFormatProperties->sampleCounts = VK_SAMPLE_COUNT_1_BIT; in getImageFormatProperties()
2412 …pImageFormatProperties->maxMipLevels = 1; // TODO(b/151263485): This is relied on by the sampler … in getImageFormatProperties()
2413 pImageFormatProperties->maxArrayLayers = 1; in getImageFormatProperties()
2414 pImageFormatProperties->sampleCounts = VK_SAMPLE_COUNT_1_BIT; in getImageFormatProperties()
2447 pQueueFamilyGlobalPriorityProperties->priorityCount = 1; in getQueueFamilyGlobalPriorityProperties()
2448 pQueueFamilyGlobalPriorityProperties->priorities[0] = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR; in getQueueFamilyGlobalPriorityProperties()
2477 switch(extInfo->sType) in getQueueFamilyProperties()
2483 UNSUPPORTED("pQueueFamilyProperties->pNext sType = %s", vk::Stringify(extInfo->sType).c_str()); in getQueueFamilyProperties()
2487 extInfo = extInfo->pNext; in getQueueFamilyProperties()