nextPtr = &physicalDevicePipelineExecutablePropertiesFeaturesKHR.pNext;
}
+ vk::VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR physicalDeviceSamplerYcbcrConversionFeaturesKHR;
+ deMemset(&physicalDeviceSamplerYcbcrConversionFeaturesKHR, 0, sizeof(physicalDeviceSamplerYcbcrConversionFeaturesKHR));
+
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_sampler_ycbcr_conversion")) )
+ {
+ physicalDeviceSamplerYcbcrConversionFeaturesKHR.sType = getStructureType<VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR>();
+ *nextPtr = &physicalDeviceSamplerYcbcrConversionFeaturesKHR;
+ nextPtr = &physicalDeviceSamplerYcbcrConversionFeaturesKHR.pNext;
+ }
+
vk::VkPhysicalDeviceScalarBlockLayoutFeaturesEXT physicalDeviceScalarBlockLayoutFeaturesEXT;
deMemset(&physicalDeviceScalarBlockLayoutFeaturesEXT, 0, sizeof(physicalDeviceScalarBlockLayoutFeaturesEXT));
}
}
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_sampler_ycbcr_conversion")) )
+ {
+ if ( physicalDeviceSamplerYcbcrConversionFeaturesKHR.samplerYcbcrConversion == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature samplerYcbcrConversion not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
+ if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) && isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_draw_indirect_count")) )
+ {
+ if ( physicalDeviceVulkan12Features.drawIndirectCount == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature drawIndirectCount not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
+ if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) && isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_sampler_mirror_clamp_to_edge")) )
+ {
+ if ( physicalDeviceVulkan12Features.samplerMirrorClampToEdge == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature samplerMirrorClampToEdge not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
+ if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) && isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_sampler_filter_minmax")) )
+ {
+ if ( physicalDeviceVulkan12Features.samplerFilterMinmax == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature samplerFilterMinmax not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
+ if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) && isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_shader_viewport_index_layer")) )
+ {
+ if ( physicalDeviceVulkan12Features.shaderOutputViewportIndex == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature shaderOutputViewportIndex not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
+ if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) && isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_shader_viewport_index_layer")) )
+ {
+ if ( physicalDeviceVulkan12Features.shaderOutputLayer == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature shaderOutputLayer not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
return result;
}
VkPhysicalDeviceShaderFloat16Int8Features FEATURES ( shaderFloat16 shaderInt8 ) REQUIREMENTS ( VK_KHR_shader_float16_int8 )
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT FEATURES ( fragmentShaderSampleInterlock fragmentShaderPixelInterlock fragmentShaderShadingRateInterlock ) REQUIREMENTS ( VK_EXT_fragment_shader_interlock )
VkPhysicalDeviceLineRasterizationFeaturesEXT FEATURES ( rectangularLines bresenhamLines smoothLines stippledRectangularLines stippledBresenhamLines stippledSmoothLines ) REQUIREMENTS ( VK_EXT_line_rasterization )
+VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR FEATURES ( samplerYcbcrConversion ) REQUIREMENTS ( VK_KHR_sampler_ycbcr_conversion )
+VkPhysicalDeviceVulkan12Features FEATURES ( drawIndirectCount ) REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_draw_indirect_count )
+VkPhysicalDeviceVulkan12Features FEATURES ( samplerMirrorClampToEdge ) REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_KHR_sampler_mirror_clamp_to_edge )
+VkPhysicalDeviceVulkan12Features FEATURES ( samplerFilterMinmax ) REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_EXT_sampler_filter_minmax )
+VkPhysicalDeviceVulkan12Features FEATURES ( shaderOutputViewportIndex ) REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_EXT_shader_viewport_index_layer )
+VkPhysicalDeviceVulkan12Features FEATURES ( shaderOutputLayer ) REQUIREMENTS ( "ApiVersion(1, 2, 0)" VK_EXT_shader_viewport_index_layer )