*/
static const char* s_allowedDeviceKhrExtensions[] =
{
- "VK_KHR_swapchain",
- "VK_KHR_swapchain_mutable_format",
- "VK_KHR_display_swapchain",
- "VK_KHR_sampler_mirror_clamp_to_edge",
- "VK_KHR_multiview",
+ "VK_KHR_16bit_storage",
+ "VK_KHR_8bit_storage",
+ "VK_KHR_acceleration_structure",
+ "VK_KHR_bind_memory2",
+ "VK_KHR_buffer_device_address",
+ "VK_KHR_copy_commands2",
+ "VK_KHR_create_renderpass2",
+ "VK_KHR_dedicated_allocation",
+ "VK_KHR_deferred_host_operations",
+ "VK_KHR_depth_stencil_resolve",
+ "VK_KHR_descriptor_update_template",
"VK_KHR_device_group",
- "VK_KHR_shader_draw_parameters",
- "VK_KHR_maintenance1",
+ "VK_KHR_display_swapchain",
+ "VK_KHR_draw_indirect_count",
+ "VK_KHR_driver_properties",
++ "VK_KHR_dynamic_rendering",
+ "VK_KHR_external_fence",
+ "VK_KHR_external_fence_fd",
+ "VK_KHR_external_fence_win32",
"VK_KHR_external_memory",
- "VK_KHR_external_memory_win32",
"VK_KHR_external_memory_fd",
- "VK_KHR_win32_keyed_mutex",
+ "VK_KHR_external_memory_win32",
"VK_KHR_external_semaphore",
- "VK_KHR_external_semaphore_win32",
"VK_KHR_external_semaphore_fd",
- "VK_KHR_push_descriptor",
- "VK_KHR_shader_float16_int8",
- "VK_KHR_16bit_storage",
+ "VK_KHR_external_semaphore_win32",
++ "VK_KHR_format_feature_flags2",
+ "VK_KHR_fragment_shading_rate",
+ "VK_KHR_get_memory_requirements2",
+ "VK_KHR_image_format_list",
+ "VK_KHR_imageless_framebuffer",
"VK_KHR_incremental_present",
- "VK_KHR_8bit_storage",
- "VK_KHR_descriptor_update_template",
- "VK_KHR_create_renderpass2",
- "VK_KHR_shared_presentable_image",
- "VK_KHR_external_fence",
- "VK_KHR_external_fence_win32",
- "VK_KHR_external_fence_fd",
+ "VK_KHR_maintenance1",
"VK_KHR_maintenance2",
- "VK_KHR_variable_pointers",
- "VK_KHR_dedicated_allocation",
- "VK_KHR_storage_buffer_storage_class",
+ "VK_KHR_maintenance3",
++ "VK_KHR_maintenance4",
+ "VK_KHR_multiview",
+ "VK_KHR_performance_query",
+ "VK_KHR_pipeline_executable_properties",
+ "VK_KHR_pipeline_library",
+ "VK_KHR_present_id",
+ "VK_KHR_present_wait",
+ "VK_KHR_push_descriptor",
+ "VK_KHR_ray_query",
+ "VK_KHR_ray_tracing_pipeline",
"VK_KHR_relaxed_block_layout",
- "VK_KHR_get_memory_requirements2",
- "VK_KHR_image_format_list",
+ "VK_KHR_sampler_mirror_clamp_to_edge",
"VK_KHR_sampler_ycbcr_conversion",
- "VK_KHR_bind_memory2",
- "VK_KHR_maintenance3",
- "VK_KHR_driver_properties",
- "VK_KHR_shader_float_controls",
- "VK_KHR_depth_stencil_resolve",
- "VK_KHR_draw_indirect_count",
- "VK_KHR_shader_atomic_int64",
- "VK_KHR_vulkan_memory_model",
- "VK_KHR_uniform_buffer_standard_layout",
- "VK_KHR_imageless_framebuffer",
- "VK_KHR_shader_subgroup_extended_types",
- "VK_EXT_sampler_filter_minmax",
- "VK_EXT_shader_viewport_index_layer",
- "VK_EXT_descriptor_indexing",
- "VK_EXT_scalar_block_layout",
- "VK_KHR_buffer_device_address",
- "VK_EXT_host_query_reset",
"VK_KHR_separate_depth_stencil_layouts",
- "VK_KHR_timeline_semaphore",
- "VK_KHR_spirv_1_4",
- "VK_EXT_separate_stencil_usage",
- "VK_KHR_pipeline_executable_properties",
"VK_KHR_shader_clock",
- "VK_KHR_performance_query",
+ "VK_KHR_shader_draw_parameters",
+ "VK_KHR_shader_float16_int8",
+ "VK_KHR_shader_float_controls",
+ "VK_KHR_shader_integer_dot_product",
"VK_KHR_shader_non_semantic_info",
- "VK_KHR_copy_commands2",
+ "VK_KHR_shader_subgroup_extended_types",
+ "VK_KHR_shader_subgroup_uniform_control_flow",
"VK_KHR_shader_terminate_invocation",
- "VK_KHR_ray_tracing_pipeline",
- "VK_KHR_ray_query",
- "VK_KHR_acceleration_structure",
- "VK_KHR_pipeline_library",
- "VK_KHR_deferred_host_operations",
- "VK_KHR_fragment_shading_rate",
- "VK_KHR_zero_initialize_workgroup_memory",
- "VK_KHR_workgroup_memory_explicit_layout",
+ "VK_KHR_shared_presentable_image",
+ "VK_KHR_spirv_1_4",
+ "VK_KHR_storage_buffer_storage_class",
+ "VK_KHR_swapchain",
+ "VK_KHR_swapchain_mutable_format",
"VK_KHR_synchronization2",
- "VK_EXT_color_write_enable",
- "VK_VALVE_mutable_descriptor_type",
- "VK_EXT_multi_draw",
- "VK_KHR_shader_subgroup_uniform_control_flow",
- "VK_KHR_present_id",
- "VK_KHR_present_wait",
- "VK_KHR_shader_integer_dot_product",
- "VK_KHR_format_feature_flags2",
- "VK_KHR_maintenance4",
- "VK_KHR_dynamic_rendering",
- "VK_EXT_border_color_swizzle",
- "VK_NV_mesh_shader",
+ "VK_KHR_timeline_semaphore",
+ "VK_KHR_uniform_buffer_standard_layout",
+ "VK_KHR_variable_pointers",
+ "VK_KHR_vulkan_memory_model",
+ "VK_KHR_win32_keyed_mutex",
+ "VK_KHR_workgroup_memory_explicit_layout",
+ "VK_KHR_zero_initialize_workgroup_memory",
};
}
}
- if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) )
++ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_border_color_swizzle")) )
+ {
- if ( physicalDeviceVulkan11Features.multiview == VK_FALSE )
++ if ( physicalDeviceBorderColorSwizzleFeaturesEXT.borderColorSwizzle == VK_FALSE )
+ {
- log << tcu::TestLog::Message << "Mandatory feature multiview not supported" << tcu::TestLog::EndMessage;
++ log << tcu::TestLog::Message << "Mandatory feature borderColorSwizzle not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
- if ( context.contextSupports(vk::ApiVersion(1, 1, 0)) )
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_color_write_enable")) )
{
- if ( physicalDeviceMultiviewFeatures.multiview == VK_FALSE )
+ if ( physicalDeviceColorWriteEnableFeaturesEXT.colorWriteEnable == VK_FALSE )
{
- log << tcu::TestLog::Message << "Mandatory feature multiview not supported" << tcu::TestLog::EndMessage;
+ log << tcu::TestLog::Message << "Mandatory feature colorWriteEnable not supported" << tcu::TestLog::EndMessage;
result = false;
}
}
}
}
- if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_separate_depth_stencil_layouts")) )
++ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_primitive_topology_list_restart")) )
+ {
- if ( physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.separateDepthStencilLayouts == VK_FALSE )
++ if ( physicalDevicePrimitiveTopologyListRestartFeaturesEXT.primitiveTopologyListRestart == VK_FALSE )
+ {
- log << tcu::TestLog::Message << "Mandatory feature separateDepthStencilLayouts not supported" << tcu::TestLog::EndMessage;
++ log << tcu::TestLog::Message << "Mandatory feature primitiveTopologyListRestart not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
- if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_pipeline_creation_cache_control")) )
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_scalar_block_layout")) )
{
- if ( physicalDevicePipelineCreationCacheControlFeaturesEXT.pipelineCreationCacheControl == VK_FALSE )
+ if ( physicalDeviceScalarBlockLayoutFeaturesEXT.scalarBlockLayout == VK_FALSE )
{
- log << tcu::TestLog::Message << "Mandatory feature pipelineCreationCacheControl not supported" << tcu::TestLog::EndMessage;
+ log << tcu::TestLog::Message << "Mandatory feature scalarBlockLayout not supported" << tcu::TestLog::EndMessage;
result = false;
}
}
def parseAPI (src):
versionsData = parseVersions(src)
versions = [Version((v[2], v[3], 0)) for v in versionsData]
- definitions = [Definition("deUint32", v.getInHex(), parsePreprocDefinedValue(src, v.getInHex())) for v in versions] +\
+ definitions = [Definition("uint32_t", v.getInHex(), parsePreprocDefinedValue(src, v.getInHex())) for v in versions] +\
[Definition(type, name, parsePreprocDefinedValue(src, name)) for name, type in DEFINITIONS]
- handles = parseHandles(src)
- rawEnums = parseEnums(src)
- bitfieldNames = parseBitfieldNames(src)
- bitfieldEnums = set([getBitEnumNameForBitfield(n) for n in bitfieldNames if getBitEnumNameForBitfield(n) in [enum.name for enum in rawEnums]])
- bitfield64Names = parse64bitBitfieldNames(src)
- bitfields64 = parse64bitBitfieldValues(src, bitfield64Names)
- enums = []
- bitfields = []
- compositeTypes = parseCompositeTypesByVersion(src, versionsData)
- allFunctions = parseFunctionsByVersion(src, versionsData)
+ handles = parseHandles(src)
+ rawEnums = parseEnums(src)
+ bitfieldNames = parseBitfieldNames(src)
+ bitfieldEnums = set([getBitEnumNameForBitfield(n) for n in bitfieldNames if getBitEnumNameForBitfield(n) in [enum.name for enum in rawEnums]])
+ bitfield64Names = parse64bitBitfieldNames(src)
+ bitfields64 = parse64bitBitfieldValues(src, bitfield64Names)
+ enums = []
+ bitfields = []
+ compositeTypes = parseCompositeTypesByVersion(src, versionsData)
+ allFunctions = parseFunctionsByVersion(src, versionsData)
+ additionalExtensionData = {}
+
+ # read all files from extensions directory
+ for fileName in glob.glob(os.path.join(VULKAN_SRC_DIR, "extensions", "*.json")):
+ extensionName = os.path.basename(fileName)[:-5]
+ fileContent = readFile(fileName)
+ try:
+ additionalExtensionData[extensionName] = json.loads(fileContent)
+ except ValueError as err:
+ print("Error in %s: %s" % (os.path.basename(fileName), str(err)))
+ sys.exit(-1)
+ additionalExtensionData = sorted(additionalExtensionData.items(), key=lambda e: e[0])
for enum in rawEnums:
if enum.name in bitfieldEnums: