diff options
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/vulkan/anv_entrypoints_gen.py | 18 | ||||
-rw-r--r-- | src/intel/vulkan/anv_extensions.py | 15 |
2 files changed, 23 insertions, 10 deletions
diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py index 3240704a0d8..983be09a39b 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -253,7 +253,7 @@ def cal_hash(name): lambda h, c: (h * PRIME_FACTOR + ord(c)) & U32_MASK, name, 0) -def get_entrypoints(doc, entrypoints_to_defines): +def get_entrypoints(doc, entrypoints_to_defines, start_index): """Extract the entry points from the registry.""" entrypoints = [] @@ -275,7 +275,7 @@ def get_entrypoints(doc, entrypoints_to_defines): for command in extension.findall('./require/command'): enabled_commands.add(command.attrib['name']) - index = 0 + index = start_index for command in doc.findall('./commands/command'): type = command.find('./proto/type').text fullname = command.find('./proto/name').text @@ -344,11 +344,19 @@ def main(): parser = argparse.ArgumentParser() parser.add_argument('--outdir', help='Where to write the files.', required=True) - parser.add_argument('--xml', help='Vulkan API XML file.', required=True) + parser.add_argument('--xml', + help='Vulkan API XML file.', + required=True, + action='append', + dest='xml_files') args = parser.parse_args() - doc = et.parse(args.xml) - entrypoints = get_entrypoints(doc, get_entrypoints_defines(doc)) + entrypoints = [] + + for filename in args.xml_files: + doc = et.parse(filename) + entrypoints += get_entrypoints(doc, get_entrypoints_defines(doc), + start_index=len(entrypoints)) # Manually add CreateDmaBufImageINTEL for which we don't have an extension # defined. diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_extensions.py index c94149c130a..4dfde064ca7 100644 --- a/src/intel/vulkan/anv_extensions.py +++ b/src/intel/vulkan/anv_extensions.py @@ -140,9 +140,6 @@ def _init_exts_from_xml(xml): ext.type = ext_elem.attrib['type'] - for ext in EXTENSIONS: - assert ext.type == 'instance' or ext.type == 'device' - _TEMPLATE = Template(COPYRIGHT + """ #include "anv_private.h" @@ -234,10 +231,18 @@ VkResult anv_EnumerateDeviceExtensionProperties( if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--out', help='Output C file.', required=True) - parser.add_argument('--xml', help='Vulkan API XML file.', required=True) + parser.add_argument('--xml', + help='Vulkan API XML file.', + required=True, + action='append', + dest='xml_files') args = parser.parse_args() - _init_exts_from_xml(args.xml) + for filename in args.xml_files: + _init_exts_from_xml(filename) + + for ext in EXTENSIONS: + assert ext.type == 'instance' or ext.type == 'device' template_env = { 'MAX_API_VERSION': MAX_API_VERSION, |