| 3936 | } |
| 3937 | } |
| 3938 | void VulkanDeviceInfoExtensions::readPhysicalFeatures_QCOM() { |
| 3939 | VkPhysicalDeviceFeatures2 deviceFeatures2{}; |
| 3940 | if (extensionSupported("VK_QCOM_tile_shading")) { |
| 3941 | const char* extension("VK_QCOM_tile_shading"); |
| 3942 | VkPhysicalDeviceTileShadingFeaturesQCOM* extFeatures = new VkPhysicalDeviceTileShadingFeaturesQCOM{}; |
| 3943 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM; |
| 3944 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 3945 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 3946 | pushFeature2(extension, "tileShading", extFeatures->tileShading); |
| 3947 | pushFeature2(extension, "tileShadingFragmentStage", extFeatures->tileShadingFragmentStage); |
| 3948 | pushFeature2(extension, "tileShadingColorAttachments", extFeatures->tileShadingColorAttachments); |
| 3949 | pushFeature2(extension, "tileShadingDepthAttachments", extFeatures->tileShadingDepthAttachments); |
| 3950 | pushFeature2(extension, "tileShadingStencilAttachments", extFeatures->tileShadingStencilAttachments); |
| 3951 | pushFeature2(extension, "tileShadingInputAttachments", extFeatures->tileShadingInputAttachments); |
| 3952 | pushFeature2(extension, "tileShadingSampledAttachments", extFeatures->tileShadingSampledAttachments); |
| 3953 | pushFeature2(extension, "tileShadingPerTileDraw", extFeatures->tileShadingPerTileDraw); |
| 3954 | pushFeature2(extension, "tileShadingPerTileDispatch", extFeatures->tileShadingPerTileDispatch); |
| 3955 | pushFeature2(extension, "tileShadingDispatchTile", extFeatures->tileShadingDispatchTile); |
| 3956 | pushFeature2(extension, "tileShadingApron", extFeatures->tileShadingApron); |
| 3957 | pushFeature2(extension, "tileShadingAnisotropicApron", extFeatures->tileShadingAnisotropicApron); |
| 3958 | pushFeature2(extension, "tileShadingAtomicOps", extFeatures->tileShadingAtomicOps); |
| 3959 | pushFeature2(extension, "tileShadingImageProcessing", extFeatures->tileShadingImageProcessing); |
| 3960 | delete extFeatures; |
| 3961 | } |
| 3962 | if (extensionSupported("VK_QCOM_fragment_density_map_offset")) { |
| 3963 | const char* extension("VK_QCOM_fragment_density_map_offset"); |
| 3964 | VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* extFeatures = new VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM{}; |
| 3965 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM; |
| 3966 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 3967 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 3968 | pushFeature2(extension, "fragmentDensityMapOffset", extFeatures->fragmentDensityMapOffset); |
| 3969 | delete extFeatures; |
| 3970 | } |
| 3971 | if (extensionSupported("VK_QCOM_image_processing")) { |
| 3972 | const char* extension("VK_QCOM_image_processing"); |
| 3973 | VkPhysicalDeviceImageProcessingFeaturesQCOM* extFeatures = new VkPhysicalDeviceImageProcessingFeaturesQCOM{}; |
| 3974 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM; |
| 3975 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 3976 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 3977 | pushFeature2(extension, "textureSampleWeighted", extFeatures->textureSampleWeighted); |
| 3978 | pushFeature2(extension, "textureBoxFilter", extFeatures->textureBoxFilter); |
| 3979 | pushFeature2(extension, "textureBlockMatch", extFeatures->textureBlockMatch); |
| 3980 | delete extFeatures; |
| 3981 | } |
| 3982 | if (extensionSupported("VK_QCOM_tile_properties")) { |
| 3983 | const char* extension("VK_QCOM_tile_properties"); |
| 3984 | VkPhysicalDeviceTilePropertiesFeaturesQCOM* extFeatures = new VkPhysicalDeviceTilePropertiesFeaturesQCOM{}; |
| 3985 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM; |
| 3986 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 3987 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 3988 | pushFeature2(extension, "tileProperties", extFeatures->tileProperties); |
| 3989 | delete extFeatures; |
| 3990 | } |
| 3991 | if (extensionSupported("VK_QCOM_multiview_per_view_viewports")) { |
| 3992 | const char* extension("VK_QCOM_multiview_per_view_viewports"); |
| 3993 | VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* extFeatures = new VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM{}; |
| 3994 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM; |
| 3995 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
nothing calls this directly
no outgoing calls
no test coverage detected