| /* WARNING: This is auto-generated file. Do not modify, since changes will |
| * be lost! Modify the generating script instead. |
| * This file was generated by /scripts/gen_framework.py |
| */ |
| |
| using namespace tcu; |
| using ExtPropVect = std::vector<vk::VkExtensionProperties>; |
| using IsSupportedFun = bool (*)(const tcu::UVec2&, const ExtPropVect&, const ExtPropVect&); |
| using DependencyCheckVect = std::vector<std::pair<const char*, IsSupportedFun> >; |
| |
| bool isCompatibile(deUint32 major, deUint32 minor, const tcu::UVec2& testedApiVersion) |
| { |
| // return true when tested api version is greater |
| // or equal to version represented by two uints |
| if (major == testedApiVersion.x()) |
| return minor <= testedApiVersion.y(); |
| return major < testedApiVersion.x(); |
| } |
| |
| bool isSupported(const ExtPropVect& extensions, const char* ext) |
| { |
| return isExtensionStructSupported(extensions, vk::RequiredExtension(ext)); |
| } |
| |
| bool check_VK_KHR_display(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vDEP); |
| |
| if (!isSupported(vIEP, "VK_KHR_display")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_surface |
| return isSupported(vIEP, "VK_KHR_surface"); |
| } |
| |
| bool check_VK_EXT_direct_mode_display(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vDEP); |
| |
| if (!isSupported(vIEP, "VK_EXT_direct_mode_display")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_display |
| return isSupported(vIEP, "VK_KHR_display"); |
| } |
| |
| bool check_VK_EXT_display_surface_counter(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vDEP); |
| |
| if (!isSupported(vIEP, "VK_EXT_display_surface_counter")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_display |
| return isSupported(vIEP, "VK_KHR_display"); |
| } |
| |
| bool check_VK_EXT_swapchain_colorspace(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vDEP); |
| |
| if (!isSupported(vIEP, "VK_EXT_swapchain_colorspace")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_surface |
| return isSupported(vIEP, "VK_KHR_surface"); |
| } |
| |
| bool check_VK_KHR_get_surface_capabilities2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vDEP); |
| |
| if (!isSupported(vIEP, "VK_KHR_get_surface_capabilities2")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_surface |
| return isSupported(vIEP, "VK_KHR_surface"); |
| } |
| |
| bool check_VK_KHR_get_display_properties2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vDEP); |
| |
| if (!isSupported(vIEP, "VK_KHR_get_display_properties2")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_display |
| return isSupported(vIEP, "VK_KHR_display"); |
| } |
| |
| bool check_VK_EXT_headless_surface(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vDEP); |
| |
| if (!isSupported(vIEP, "VK_EXT_headless_surface")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_surface |
| return isSupported(vIEP, "VK_KHR_surface"); |
| } |
| |
| static const DependencyCheckVect instanceExtensionDependencies |
| { |
| std::make_pair("VK_KHR_display", &check_VK_KHR_display), |
| std::make_pair("VK_EXT_direct_mode_display", &check_VK_EXT_direct_mode_display), |
| std::make_pair("VK_EXT_display_surface_counter", &check_VK_EXT_display_surface_counter), |
| std::make_pair("VK_EXT_swapchain_colorspace", &check_VK_EXT_swapchain_colorspace), |
| std::make_pair("VK_KHR_get_surface_capabilities2", &check_VK_KHR_get_surface_capabilities2), |
| std::make_pair("VK_KHR_get_display_properties2", &check_VK_KHR_get_display_properties2), |
| std::make_pair("VK_EXT_headless_surface", &check_VK_EXT_headless_surface), |
| }; |
| |
| bool check_VK_KHR_swapchain(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_swapchain")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_surface |
| return isSupported(vIEP, "VK_KHR_surface"); |
| } |
| |
| bool check_VK_KHR_display_swapchain(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_display_swapchain")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_swapchain+VK_KHR_display |
| return isSupported(vDEP, "VK_KHR_swapchain") && isSupported(vIEP, "VK_KHR_display"); |
| } |
| |
| bool check_VK_EXT_texture_compression_astc_hdr(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_texture_compression_astc_hdr")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_astc_decode_mode(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_astc_decode_mode")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_external_memory_fd(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_external_memory_fd")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_external_memory,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_external_semaphore_fd(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_external_semaphore_fd")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_external_semaphore,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_incremental_present(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_incremental_present")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_swapchain |
| return isSupported(vDEP, "VK_KHR_swapchain"); |
| } |
| |
| bool check_VK_EXT_display_control(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_display_control")) |
| return true; |
| |
| // depends attribute in xml: VK_EXT_display_surface_counter+VK_KHR_swapchain |
| return isSupported(vIEP, "VK_EXT_display_surface_counter") && isSupported(vDEP, "VK_KHR_swapchain"); |
| } |
| |
| bool check_VK_EXT_discard_rectangles(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_discard_rectangles")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_conservative_rasterization(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_conservative_rasterization")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_depth_clip_enable(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_depth_clip_enable")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_hdr_metadata(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_hdr_metadata")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_swapchain |
| return isSupported(vDEP, "VK_KHR_swapchain"); |
| } |
| |
| bool check_VK_KHR_shared_presentable_image(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_shared_presentable_image")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_swapchain+VK_KHR_get_surface_capabilities2+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1) |
| return isSupported(vDEP, "VK_KHR_swapchain") && isSupported(vIEP, "VK_KHR_get_surface_capabilities2") && (true); |
| } |
| |
| bool check_VK_KHR_external_fence_fd(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_external_fence_fd")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_external_fence,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_performance_query(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_performance_query")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_external_memory_dma_buf(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_external_memory_dma_buf")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_external_memory_fd |
| return isSupported(vDEP, "VK_KHR_external_memory_fd"); |
| } |
| |
| bool check_VK_EXT_queue_family_foreign(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_queue_family_foreign")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_external_memory,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_sample_locations(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_sample_locations")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_blend_operation_advanced(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_blend_operation_advanced")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_image_drm_format_modifier(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_image_drm_format_modifier")) |
| return true; |
| |
| // depends attribute in xml: ((VK_KHR_bind_memory2+VK_KHR_get_physical_device_properties2+VK_KHR_sampler_ycbcr_conversion),VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2) |
| return ((true && true && true)) && (true); |
| } |
| |
| bool check_VK_EXT_external_memory_host(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_external_memory_host")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_external_memory,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_shader_clock(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_shader_clock")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_calibrated_timestamps(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_calibrated_timestamps")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_vertex_attribute_divisor(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_vertex_attribute_divisor")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_swapchain_mutable_format(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_swapchain_mutable_format")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_swapchain+(VK_KHR_maintenance2,VK_VERSION_1_1)+(VK_KHR_image_format_list,VK_VERSION_1_2) |
| return isSupported(vDEP, "VK_KHR_swapchain") && (true) && (true); |
| } |
| |
| bool check_VK_EXT_pci_bus_info(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_pci_bus_info")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_shader_terminate_invocation(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_shader_terminate_invocation")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_subgroup_size_control(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_subgroup_size_control")) |
| return true; |
| |
| // depends attribute in xml: VK_VERSION_1_1 |
| return isCompatibile(1, 1, v); |
| } |
| |
| bool check_VK_KHR_fragment_shading_rate(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_fragment_shading_rate")) |
| return true; |
| |
| // depends attribute in xml: (VK_KHR_create_renderpass2,VK_VERSION_1_2)+(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1) |
| return (true) && (true); |
| } |
| |
| bool check_VK_EXT_shader_image_atomic_int64(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_shader_image_atomic_int64")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_memory_budget(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_memory_budget")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_fragment_shader_interlock(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_fragment_shader_interlock")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_ycbcr_image_arrays(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_ycbcr_image_arrays")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_line_rasterization(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_line_rasterization")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_shader_atomic_float(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_shader_atomic_float")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_index_type_uint8(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_index_type_uint8")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_extended_dynamic_state(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_extended_dynamic_state")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_shader_demote_to_helper_invocation(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_shader_demote_to_helper_invocation")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_texel_buffer_alignment(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_texel_buffer_alignment")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_robustness2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_robustness2")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_custom_border_color(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_custom_border_color")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_synchronization2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_synchronization2")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_ycbcr_2plane_444_formats(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_ycbcr_2plane_444_formats")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_sampler_ycbcr_conversion,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_image_robustness(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_image_robustness")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_KHR_copy_commands2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_copy_commands2")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_4444_formats(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_4444_formats")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_vertex_input_dynamic_state(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_vertex_input_dynamic_state")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_NV_external_sci_sync(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_NV_external_sci_sync")) |
| return true; |
| |
| // depends attribute in xml: VK_VERSION_1_1 |
| return isCompatibile(1, 1, v); |
| } |
| |
| bool check_VK_NV_external_memory_sci_buf(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_NV_external_memory_sci_buf")) |
| return true; |
| |
| // depends attribute in xml: VK_VERSION_1_1 |
| return isCompatibile(1, 1, v); |
| } |
| |
| bool check_VK_EXT_extended_dynamic_state2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_extended_dynamic_state2")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_EXT_color_write_enable(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_EXT_color_write_enable")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2,VK_VERSION_1_1 |
| return true; |
| } |
| |
| bool check_VK_NV_external_sci_sync2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_NV_external_sci_sync2")) |
| return true; |
| |
| // depends attribute in xml: VK_VERSION_1_1 |
| return isCompatibile(1, 1, v); |
| } |
| |
| bool check_VK_QNX_external_memory_screen_buffer(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_QNX_external_memory_screen_buffer")) |
| return true; |
| |
| // depends attribute in xml: ((VK_KHR_sampler_ycbcr_conversion+VK_KHR_external_memory+VK_KHR_dedicated_allocation),VK_VERSION_1_1)+VK_EXT_queue_family_foreign |
| return ((true && true && true)) && isSupported(vDEP, "VK_EXT_queue_family_foreign"); |
| } |
| |
| bool check_VK_NV_device_diagnostic_checkpoints(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| DE_UNREF(v); |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_NV_device_diagnostic_checkpoints")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2 |
| return true; |
| } |
| |
| bool check_VK_KHR_format_feature_flags2(const tcu::UVec2& v, const ExtPropVect& vIEP, const ExtPropVect& vDEP) |
| { |
| if (isCompatibile(1, 3, v)) |
| return true; |
| |
| DE_UNREF(vIEP); |
| |
| if (!isSupported(vDEP, "VK_KHR_format_feature_flags2")) |
| return true; |
| |
| // depends attribute in xml: VK_KHR_get_physical_device_properties2 |
| return true; |
| } |
| |
| static const DependencyCheckVect deviceExtensionDependencies |
| { |
| std::make_pair("VK_KHR_swapchain", &check_VK_KHR_swapchain), |
| std::make_pair("VK_KHR_display_swapchain", &check_VK_KHR_display_swapchain), |
| std::make_pair("VK_EXT_texture_compression_astc_hdr", &check_VK_EXT_texture_compression_astc_hdr), |
| std::make_pair("VK_EXT_astc_decode_mode", &check_VK_EXT_astc_decode_mode), |
| std::make_pair("VK_KHR_external_memory_fd", &check_VK_KHR_external_memory_fd), |
| std::make_pair("VK_KHR_external_semaphore_fd", &check_VK_KHR_external_semaphore_fd), |
| std::make_pair("VK_KHR_incremental_present", &check_VK_KHR_incremental_present), |
| std::make_pair("VK_EXT_display_control", &check_VK_EXT_display_control), |
| std::make_pair("VK_EXT_discard_rectangles", &check_VK_EXT_discard_rectangles), |
| std::make_pair("VK_EXT_conservative_rasterization", &check_VK_EXT_conservative_rasterization), |
| std::make_pair("VK_EXT_depth_clip_enable", &check_VK_EXT_depth_clip_enable), |
| std::make_pair("VK_EXT_hdr_metadata", &check_VK_EXT_hdr_metadata), |
| std::make_pair("VK_KHR_shared_presentable_image", &check_VK_KHR_shared_presentable_image), |
| std::make_pair("VK_KHR_external_fence_fd", &check_VK_KHR_external_fence_fd), |
| std::make_pair("VK_KHR_performance_query", &check_VK_KHR_performance_query), |
| std::make_pair("VK_EXT_external_memory_dma_buf", &check_VK_EXT_external_memory_dma_buf), |
| std::make_pair("VK_EXT_queue_family_foreign", &check_VK_EXT_queue_family_foreign), |
| std::make_pair("VK_EXT_sample_locations", &check_VK_EXT_sample_locations), |
| std::make_pair("VK_EXT_blend_operation_advanced", &check_VK_EXT_blend_operation_advanced), |
| std::make_pair("VK_EXT_image_drm_format_modifier", &check_VK_EXT_image_drm_format_modifier), |
| std::make_pair("VK_EXT_external_memory_host", &check_VK_EXT_external_memory_host), |
| std::make_pair("VK_KHR_shader_clock", &check_VK_KHR_shader_clock), |
| std::make_pair("VK_EXT_calibrated_timestamps", &check_VK_EXT_calibrated_timestamps), |
| std::make_pair("VK_EXT_vertex_attribute_divisor", &check_VK_EXT_vertex_attribute_divisor), |
| std::make_pair("VK_KHR_swapchain_mutable_format", &check_VK_KHR_swapchain_mutable_format), |
| std::make_pair("VK_EXT_pci_bus_info", &check_VK_EXT_pci_bus_info), |
| std::make_pair("VK_KHR_shader_terminate_invocation", &check_VK_KHR_shader_terminate_invocation), |
| std::make_pair("VK_EXT_subgroup_size_control", &check_VK_EXT_subgroup_size_control), |
| std::make_pair("VK_KHR_fragment_shading_rate", &check_VK_KHR_fragment_shading_rate), |
| std::make_pair("VK_EXT_shader_image_atomic_int64", &check_VK_EXT_shader_image_atomic_int64), |
| std::make_pair("VK_EXT_memory_budget", &check_VK_EXT_memory_budget), |
| std::make_pair("VK_EXT_fragment_shader_interlock", &check_VK_EXT_fragment_shader_interlock), |
| std::make_pair("VK_EXT_ycbcr_image_arrays", &check_VK_EXT_ycbcr_image_arrays), |
| std::make_pair("VK_EXT_line_rasterization", &check_VK_EXT_line_rasterization), |
| std::make_pair("VK_EXT_shader_atomic_float", &check_VK_EXT_shader_atomic_float), |
| std::make_pair("VK_EXT_index_type_uint8", &check_VK_EXT_index_type_uint8), |
| std::make_pair("VK_EXT_extended_dynamic_state", &check_VK_EXT_extended_dynamic_state), |
| std::make_pair("VK_EXT_shader_demote_to_helper_invocation", &check_VK_EXT_shader_demote_to_helper_invocation), |
| std::make_pair("VK_EXT_texel_buffer_alignment", &check_VK_EXT_texel_buffer_alignment), |
| std::make_pair("VK_EXT_robustness2", &check_VK_EXT_robustness2), |
| std::make_pair("VK_EXT_custom_border_color", &check_VK_EXT_custom_border_color), |
| std::make_pair("VK_KHR_synchronization2", &check_VK_KHR_synchronization2), |
| std::make_pair("VK_EXT_ycbcr_2plane_444_formats", &check_VK_EXT_ycbcr_2plane_444_formats), |
| std::make_pair("VK_EXT_image_robustness", &check_VK_EXT_image_robustness), |
| std::make_pair("VK_KHR_copy_commands2", &check_VK_KHR_copy_commands2), |
| std::make_pair("VK_EXT_4444_formats", &check_VK_EXT_4444_formats), |
| std::make_pair("VK_EXT_vertex_input_dynamic_state", &check_VK_EXT_vertex_input_dynamic_state), |
| std::make_pair("VK_NV_external_sci_sync", &check_VK_NV_external_sci_sync), |
| std::make_pair("VK_NV_external_memory_sci_buf", &check_VK_NV_external_memory_sci_buf), |
| std::make_pair("VK_EXT_extended_dynamic_state2", &check_VK_EXT_extended_dynamic_state2), |
| std::make_pair("VK_EXT_color_write_enable", &check_VK_EXT_color_write_enable), |
| std::make_pair("VK_NV_external_sci_sync2", &check_VK_NV_external_sci_sync2), |
| std::make_pair("VK_QNX_external_memory_screen_buffer", &check_VK_QNX_external_memory_screen_buffer), |
| std::make_pair("VK_NV_device_diagnostic_checkpoints", &check_VK_NV_device_diagnostic_checkpoints), |
| std::make_pair("VK_KHR_format_feature_flags2", &check_VK_KHR_format_feature_flags2), |
| }; |
| |
| static const std::tuple<deUint32, deUint32, deUint32, deUint32> releasedApiVersions[] = |
| { |
| std::make_tuple(541065216, 1, 1, 0), |
| std::make_tuple(541077504, 1, 1, 3), |
| std::make_tuple(541073408, 1, 1, 2), |
| std::make_tuple(541069312, 1, 1, 1), |
| std::make_tuple(541065216, 1, 1, 0), |
| }; |
| static const std::tuple<deUint32, deUint32, const char*> extensionRequiredCoreVersion[] = |
| { |
| std::make_tuple(1, 0, "VK_KHR_surface"), |
| std::make_tuple(1, 0, "VK_KHR_swapchain"), |
| std::make_tuple(1, 0, "VK_KHR_display"), |
| std::make_tuple(1, 0, "VK_KHR_display_swapchain"), |
| std::make_tuple(1, 0, "VK_EXT_depth_range_unrestricted"), |
| std::make_tuple(1, 0, "VK_NV_private_vendor_info"), |
| std::make_tuple(1, 0, "VK_EXT_texture_compression_astc_hdr"), |
| std::make_tuple(1, 0, "VK_EXT_astc_decode_mode"), |
| std::make_tuple(1, 0, "VK_KHR_external_memory_fd"), |
| std::make_tuple(1, 0, "VK_KHR_external_semaphore_fd"), |
| std::make_tuple(1, 0, "VK_KHR_incremental_present"), |
| std::make_tuple(1, 0, "VK_EXT_direct_mode_display"), |
| std::make_tuple(1, 0, "VK_EXT_display_surface_counter"), |
| std::make_tuple(1, 0, "VK_EXT_display_control"), |
| std::make_tuple(1, 0, "VK_EXT_discard_rectangles"), |
| std::make_tuple(1, 0, "VK_EXT_conservative_rasterization"), |
| std::make_tuple(1, 0, "VK_EXT_depth_clip_enable"), |
| std::make_tuple(1, 0, "VK_EXT_swapchain_colorspace"), |
| std::make_tuple(1, 0, "VK_EXT_hdr_metadata"), |
| std::make_tuple(1, 0, "VK_KHR_shared_presentable_image"), |
| std::make_tuple(1, 0, "VK_KHR_external_fence_fd"), |
| std::make_tuple(1, 0, "VK_KHR_performance_query"), |
| std::make_tuple(1, 0, "VK_KHR_get_surface_capabilities2"), |
| std::make_tuple(1, 0, "VK_KHR_get_display_properties2"), |
| std::make_tuple(1, 0, "VK_EXT_external_memory_dma_buf"), |
| std::make_tuple(1, 0, "VK_EXT_queue_family_foreign"), |
| std::make_tuple(1, 0, "VK_EXT_debug_utils"), |
| std::make_tuple(1, 0, "VK_EXT_shader_stencil_export"), |
| std::make_tuple(1, 0, "VK_EXT_sample_locations"), |
| std::make_tuple(1, 0, "VK_EXT_blend_operation_advanced"), |
| std::make_tuple(1, 0, "VK_EXT_post_depth_coverage"), |
| std::make_tuple(1, 0, "VK_EXT_image_drm_format_modifier"), |
| std::make_tuple(1, 0, "VK_EXT_filter_cubic"), |
| std::make_tuple(1, 0, "VK_EXT_global_priority"), |
| std::make_tuple(1, 0, "VK_EXT_external_memory_host"), |
| std::make_tuple(1, 0, "VK_KHR_shader_clock"), |
| std::make_tuple(1, 0, "VK_EXT_calibrated_timestamps"), |
| std::make_tuple(1, 0, "VK_EXT_vertex_attribute_divisor"), |
| std::make_tuple(1, 0, "VK_KHR_swapchain_mutable_format"), |
| std::make_tuple(1, 0, "VK_EXT_pci_bus_info"), |
| std::make_tuple(1, 0, "VK_KHR_shader_terminate_invocation"), |
| std::make_tuple(1, 1, "VK_EXT_subgroup_size_control"), |
| std::make_tuple(1, 0, "VK_KHR_fragment_shading_rate"), |
| std::make_tuple(1, 0, "VK_EXT_shader_image_atomic_int64"), |
| std::make_tuple(1, 0, "VK_EXT_memory_budget"), |
| std::make_tuple(1, 0, "VK_EXT_validation_features"), |
| std::make_tuple(1, 0, "VK_EXT_fragment_shader_interlock"), |
| std::make_tuple(1, 0, "VK_EXT_ycbcr_image_arrays"), |
| std::make_tuple(1, 0, "VK_EXT_headless_surface"), |
| std::make_tuple(1, 0, "VK_EXT_line_rasterization"), |
| std::make_tuple(1, 0, "VK_EXT_shader_atomic_float"), |
| std::make_tuple(1, 0, "VK_EXT_index_type_uint8"), |
| std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state"), |
| std::make_tuple(1, 0, "VK_EXT_shader_demote_to_helper_invocation"), |
| std::make_tuple(1, 0, "VK_EXT_texel_buffer_alignment"), |
| std::make_tuple(1, 0, "VK_EXT_robustness2"), |
| std::make_tuple(1, 0, "VK_EXT_custom_border_color"), |
| std::make_tuple(1, 0, "VK_KHR_object_refresh"), |
| std::make_tuple(1, 0, "VK_KHR_synchronization2"), |
| std::make_tuple(1, 0, "VK_EXT_ycbcr_2plane_444_formats"), |
| std::make_tuple(1, 0, "VK_EXT_image_robustness"), |
| std::make_tuple(1, 0, "VK_KHR_copy_commands2"), |
| std::make_tuple(1, 0, "VK_EXT_4444_formats"), |
| std::make_tuple(1, 0, "VK_EXT_vertex_input_dynamic_state"), |
| std::make_tuple(1, 1, "VK_NV_external_sci_sync"), |
| std::make_tuple(1, 1, "VK_NV_external_memory_sci_buf"), |
| std::make_tuple(1, 0, "VK_EXT_extended_dynamic_state2"), |
| std::make_tuple(1, 0, "VK_EXT_color_write_enable"), |
| std::make_tuple(1, 0, "VK_EXT_application_parameters"), |
| std::make_tuple(1, 1, "VK_NV_external_sci_sync2"), |
| std::make_tuple(1, 0, "VK_QNX_external_memory_screen_buffer"), |
| std::make_tuple(1, 0, "VK_NV_device_diagnostic_checkpoints"), |
| std::make_tuple(1, 0, "VK_KHR_format_feature_flags2"), |
| }; |