| 1616 | #endif |
| 1617 | } |
| 1618 | void VulkanDeviceInfoExtensions::readPhysicalFeatures_ARM() { |
| 1619 | VkPhysicalDeviceFeatures2 deviceFeatures2{}; |
| 1620 | if (extensionSupported("VK_ARM_rasterization_order_attachment_access")) { |
| 1621 | const char* extension("VK_ARM_rasterization_order_attachment_access"); |
| 1622 | VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* extFeatures = new VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT{}; |
| 1623 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT; |
| 1624 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 1625 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 1626 | pushFeature2(extension, "rasterizationOrderColorAttachmentAccess", extFeatures->rasterizationOrderColorAttachmentAccess); |
| 1627 | pushFeature2(extension, "rasterizationOrderDepthAttachmentAccess", extFeatures->rasterizationOrderDepthAttachmentAccess); |
| 1628 | pushFeature2(extension, "rasterizationOrderStencilAttachmentAccess", extFeatures->rasterizationOrderStencilAttachmentAccess); |
| 1629 | delete extFeatures; |
| 1630 | } |
| 1631 | if (extensionSupported("VK_ARM_scheduling_controls")) { |
| 1632 | const char* extension("VK_ARM_scheduling_controls"); |
| 1633 | VkPhysicalDeviceSchedulingControlsFeaturesARM* extFeatures = new VkPhysicalDeviceSchedulingControlsFeaturesARM{}; |
| 1634 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM; |
| 1635 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 1636 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 1637 | pushFeature2(extension, "schedulingControls", extFeatures->schedulingControls); |
| 1638 | delete extFeatures; |
| 1639 | } |
| 1640 | if (extensionSupported("VK_ARM_render_pass_striped")) { |
| 1641 | const char* extension("VK_ARM_render_pass_striped"); |
| 1642 | VkPhysicalDeviceRenderPassStripedFeaturesARM* extFeatures = new VkPhysicalDeviceRenderPassStripedFeaturesARM{}; |
| 1643 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM; |
| 1644 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 1645 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 1646 | pushFeature2(extension, "renderPassStriped", extFeatures->renderPassStriped); |
| 1647 | delete extFeatures; |
| 1648 | } |
| 1649 | if (extensionSupported("VK_ARM_tensors")) { |
| 1650 | const char* extension("VK_ARM_tensors"); |
| 1651 | VkPhysicalDeviceTensorFeaturesARM* extFeatures = new VkPhysicalDeviceTensorFeaturesARM{}; |
| 1652 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM; |
| 1653 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 1654 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 1655 | pushFeature2(extension, "tensorNonPacked", extFeatures->tensorNonPacked); |
| 1656 | pushFeature2(extension, "shaderTensorAccess", extFeatures->shaderTensorAccess); |
| 1657 | pushFeature2(extension, "shaderStorageTensorArrayDynamicIndexing", extFeatures->shaderStorageTensorArrayDynamicIndexing); |
| 1658 | pushFeature2(extension, "shaderStorageTensorArrayNonUniformIndexing", extFeatures->shaderStorageTensorArrayNonUniformIndexing); |
| 1659 | pushFeature2(extension, "descriptorBindingStorageTensorUpdateAfterBind", extFeatures->descriptorBindingStorageTensorUpdateAfterBind); |
| 1660 | pushFeature2(extension, "tensors", extFeatures->tensors); |
| 1661 | delete extFeatures; |
| 1662 | } |
| 1663 | if (extensionSupported("VK_ARM_shader_core_builtins")) { |
| 1664 | const char* extension("VK_ARM_shader_core_builtins"); |
| 1665 | VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* extFeatures = new VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM{}; |
| 1666 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM; |
| 1667 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 1668 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 1669 | pushFeature2(extension, "shaderCoreBuiltins", extFeatures->shaderCoreBuiltins); |
| 1670 | delete extFeatures; |
| 1671 | } |
| 1672 | if (extensionSupported("VK_ARM_data_graph")) { |
| 1673 | const char* extension("VK_ARM_data_graph"); |
| 1674 | VkPhysicalDeviceDataGraphFeaturesARM* extFeatures = new VkPhysicalDeviceDataGraphFeaturesARM{}; |
| 1675 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM; |
nothing calls this directly
no outgoing calls
no test coverage detected