summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/vulkan/anv_entrypoints_gen.py18
-rw-r--r--src/intel/vulkan/anv_extensions.py15
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,