[Mesa-dev] [PATCH 05/13] anv: split main into two functions in anv_entrypoints_gen.py
Dylan Baker
dylan at pnwbakers.com
Wed Feb 22 23:15:37 UTC 2017
This is groundwork for the next patches, it will allows porting the
header and the code to mako separately, and will also allow both to be
run simultaneously.
Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
src/intel/vulkan/anv_entrypoints_gen.py | 96 +++++++++++++++++----------------
1 file changed, 50 insertions(+), 46 deletions(-)
diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py
index 5403bcb4bc..3f7b5589e5 100644
--- a/src/intel/vulkan/anv_entrypoints_gen.py
+++ b/src/intel/vulkan/anv_entrypoints_gen.py
@@ -141,58 +141,40 @@ def get_entrypoints_defines(doc):
return entrypoints_to_defines
-def main():
- doc = et.parse(VK_XML)
- entrypoints = get_entrypoints(doc, get_entrypoints_defines(doc))
-
- # Manually add CreateDmaBufImageINTEL for which we don't have an extension
- # defined.
- entrypoints.append(('VkResult', 'CreateDmaBufImageINTEL',
- 'VkDevice device, ' +
- 'const VkDmaBufImageCreateInfo* pCreateInfo, ' +
- 'const VkAllocationCallbacks* pAllocator,' +
- 'VkDeviceMemory* pMem,' +
- 'VkImage* pImage', len(entrypoints),
- hash('vkCreateDmaBufImageINTEL'), None))
-
- # For outputting entrypoints.h we generate a anv_EntryPoint() prototype
- # per entry point.
-
- if opt_header:
- print "/* This file generated from vk_gen.py, don't edit directly. */\n"
+def gen_header(entrypoints):
+ print "/* This file generated from vk_gen.py, don't edit directly. */\n"
- print "struct anv_dispatch_table {"
- print " union {"
- print " void *entrypoints[%d];" % len(entrypoints)
- print " struct {"
+ print "struct anv_dispatch_table {"
+ print " union {"
+ print " void *entrypoints[%d];" % len(entrypoints)
+ print " struct {"
- for type, name, args, num, h, guard in entrypoints:
- if guard is not None:
- print "#ifdef {0}".format(guard)
- print " PFN_vk{0} {0};".format(name)
- print "#else"
- print " void *{0};".format(name)
- print "#endif"
- else:
- print " PFN_vk{0} {0};".format(name)
- print " };\n"
- print " };\n"
- print "};\n"
-
- print "void anv_set_dispatch_devinfo(const struct gen_device_info *info);\n"
+ for type, name, args, num, h, guard in entrypoints:
+ if guard is not None:
+ print "#ifdef {0}".format(guard)
+ print " PFN_vk{0} {0};".format(name)
+ print "#else"
+ print " void *{0};".format(name)
+ print "#endif"
+ else:
+ print " PFN_vk{0} {0};".format(name)
+ print " };\n"
+ print " };\n"
+ print "};\n"
- for type, name, args, num, h, guard in entrypoints:
- print_guard_start(guard)
- print "%s anv_%s(%s);" % (type, name, args)
- print "%s gen7_%s(%s);" % (type, name, args)
- print "%s gen75_%s(%s);" % (type, name, args)
- print "%s gen8_%s(%s);" % (type, name, args)
- print "%s gen9_%s(%s);" % (type, name, args)
- print_guard_end(guard)
- exit()
+ print "void anv_set_dispatch_devinfo(const struct gen_device_info *info);\n"
+ for type, name, args, num, h, guard in entrypoints:
+ print_guard_start(guard)
+ print "%s anv_%s(%s);" % (type, name, args)
+ print "%s gen7_%s(%s);" % (type, name, args)
+ print "%s gen75_%s(%s);" % (type, name, args)
+ print "%s gen8_%s(%s);" % (type, name, args)
+ print "%s gen9_%s(%s);" % (type, name, args)
+ print_guard_end(guard)
+def gen_code(entrypoints):
print textwrap.dedent("""\
/*
* Copyright © 2015 Intel Corporation
@@ -377,5 +359,27 @@ def main():
""") % (PRIME_FACTOR, PRIME_STEP, HASH_MASK)
+def main():
+ doc = et.parse(VK_XML)
+ entrypoints = get_entrypoints(doc, get_entrypoints_defines(doc))
+
+ # Manually add CreateDmaBufImageINTEL for which we don't have an extension
+ # defined.
+ entrypoints.append(('VkResult', 'CreateDmaBufImageINTEL',
+ 'VkDevice device, ' +
+ 'const VkDmaBufImageCreateInfo* pCreateInfo, ' +
+ 'const VkAllocationCallbacks* pAllocator,' +
+ 'VkDeviceMemory* pMem,' +
+ 'VkImage* pImage', len(entrypoints),
+ hash('vkCreateDmaBufImageINTEL'), None))
+
+ # For outputting entrypoints.h we generate a anv_EntryPoint() prototype
+ # per entry point.
+ if opt_header:
+ gen_header(entrypoints)
+ else:
+ gen_code(entrypoints)
+
+
if __name__ == '__main__':
main()
--
2.11.1
More information about the mesa-dev
mailing list