From c7ae262ec9434a0e3804093bc5a54971fef25d36 Mon Sep 17 00:00:00 2001 From: Gabríel Arthúr Pétursson Date: Sun, 18 Mar 2018 17:34:01 +0000 Subject: layers: Fix incorrect generation of get_debug_report_enum There is no corresponding DebugReportObjectType enum for kVulkanObjectTypeDebugUtilsMessengerEXT, so map it to the unknown type. The generation script skipped over this enum, causing buffer overflow faults in the VkLayerTest.ValidationCacheTestBadMerge test. --- scripts/helper_file_generator.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'scripts') diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py index 8f10a75c..e9d5f22d 100644 --- a/scripts/helper_file_generator.py +++ b/scripts/helper_file_generator.py @@ -629,13 +629,18 @@ class HelperFileOutputGenerator(OutputGenerator): object_types_header += ' VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeUnknown\n' for object_type in type_list: search_type = object_type.replace("kVulkanObjectType", "").lower() + found = False for vk_object_type in self.debug_report_object_types: target_type = vk_object_type.replace("VK_DEBUG_REPORT_OBJECT_TYPE_", "").lower() target_type = target_type[:-4] target_type = target_type.replace("_", "") if search_type == target_type: object_types_header += ' %s, // %s\n' % (vk_object_type, object_type) + found = True break + if not found: + object_types_header += ' %s, // %s\n' % ("VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT", object_type) + object_types_header += '};\n' # Output a conversion routine from the layer object definitions to the core object type definitions -- cgit v1.2.3