anv/entrypoints: Add a LAYERS helper variable
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 17 Jan 2018 00:46:35 +0000 (16:46 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 23 Jan 2018 08:15:40 +0000 (00:15 -0800)
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
src/intel/vulkan/anv_entrypoints_gen.py

index 1c3fda8..6c922b8 100644 (file)
@@ -36,6 +36,15 @@ from anv_extensions import *
 # function and a power-of-two size table. The prime numbers are determined
 # experimentally.
 
+LAYERS = [
+    'anv',
+    'gen7',
+    'gen75',
+    'gen8',
+    'gen9',
+    'gen10'
+]
+
 TEMPLATE_H = Template("""\
 /* This file generated from ${filename}, don't edit directly. */
 
@@ -62,12 +71,9 @@ struct anv_dispatch_table {
   % if e.guard is not None:
 #ifdef ${e.guard}
   % endif
-  ${e.return_type} ${e.prefixed_name('anv')}(${e.params});
-  ${e.return_type} ${e.prefixed_name('gen7')}(${e.params});
-  ${e.return_type} ${e.prefixed_name('gen75')}(${e.params});
-  ${e.return_type} ${e.prefixed_name('gen8')}(${e.params});
-  ${e.return_type} ${e.prefixed_name('gen9')}(${e.params});
-  ${e.return_type} ${e.prefixed_name('gen10')}(${e.params});
+  % for layer in LAYERS:
+  ${e.return_type} ${e.prefixed_name(layer)}(${e.params});
+  % endfor
   % if e.guard is not None:
 #endif // ${e.guard}
   % endif
@@ -129,7 +135,7 @@ static const struct anv_entrypoint entrypoints[] = {
  * either pick the correct entry point.
  */
 
-% for layer in ['anv', 'gen7', 'gen75', 'gen8', 'gen9', 'gen10']:
+% for layer in LAYERS:
   % for e in entrypoints:
     % if e.guard is not None:
 #ifdef ${e.guard}
@@ -341,6 +347,7 @@ def gen_code(entrypoints):
         mapping[h & HASH_MASK] = e.num
 
     return TEMPLATE_C.render(entrypoints=entrypoints,
+                             LAYERS=LAYERS,
                              offsets=offsets,
                              collisions=collisions,
                              mapping=mapping,
@@ -387,6 +394,7 @@ def main():
     try:
         with open(os.path.join(args.outdir, 'anv_entrypoints.h'), 'wb') as f:
             f.write(TEMPLATE_H.render(entrypoints=entrypoints,
+                                      LAYERS=LAYERS,
                                       filename=os.path.basename(__file__)))
         with open(os.path.join(args.outdir, 'anv_entrypoints.c'), 'wb') as f:
             f.write(gen_code(entrypoints))