/* 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; using IsSupportedFun = bool (*)(const tcu::UVec2&, const ExtPropVect&, const ExtPropVect&); using DependencyCheckVect = std::vector >; 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 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 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"), };