| 4097 | } |
| 4098 | } |
| 4099 | void VulkanDeviceInfoExtensions::readPhysicalFeatures_VALVE() { |
| 4100 | VkPhysicalDeviceFeatures2 deviceFeatures2{}; |
| 4101 | if (extensionSupported("VK_VALVE_mutable_descriptor_type")) { |
| 4102 | const char* extension("VK_VALVE_mutable_descriptor_type"); |
| 4103 | VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* extFeatures = new VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT{}; |
| 4104 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT; |
| 4105 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 4106 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 4107 | pushFeature2(extension, "mutableDescriptorType", extFeatures->mutableDescriptorType); |
| 4108 | delete extFeatures; |
| 4109 | } |
| 4110 | if (extensionSupported("VK_VALVE_video_encode_rgb_conversion")) { |
| 4111 | const char* extension("VK_VALVE_video_encode_rgb_conversion"); |
| 4112 | VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE* extFeatures = new VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE{}; |
| 4113 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE; |
| 4114 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 4115 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 4116 | pushFeature2(extension, "videoEncodeRgbConversion", extFeatures->videoEncodeRgbConversion); |
| 4117 | delete extFeatures; |
| 4118 | } |
| 4119 | if (extensionSupported("VK_VALVE_descriptor_set_host_mapping")) { |
| 4120 | const char* extension("VK_VALVE_descriptor_set_host_mapping"); |
| 4121 | VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* extFeatures = new VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE{}; |
| 4122 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE; |
| 4123 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 4124 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 4125 | pushFeature2(extension, "descriptorSetHostMapping", extFeatures->descriptorSetHostMapping); |
| 4126 | delete extFeatures; |
| 4127 | } |
| 4128 | if (extensionSupported("VK_VALVE_fragment_density_map_layered")) { |
| 4129 | const char* extension("VK_VALVE_fragment_density_map_layered"); |
| 4130 | VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE* extFeatures = new VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE{}; |
| 4131 | extFeatures->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE; |
| 4132 | deviceFeatures2 = initDeviceFeatures2(extFeatures); |
| 4133 | vulkanContext.vkGetPhysicalDeviceFeatures2KHR(device, &deviceFeatures2); |
| 4134 | pushFeature2(extension, "fragmentDensityMapLayered", extFeatures->fragmentDensityMapLayered); |
| 4135 | delete extFeatures; |
| 4136 | } |
| 4137 | } |
| 4138 | |
| 4139 | |
| 4140 | void VulkanDeviceInfoExtensions::readExtendedFeatures() { |
nothing calls this directly
no outgoing calls
no test coverage detected