anv/entrypoints: Add a LAYERS helper variable

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
This commit is contained in:
Jason Ekstrand 2018-01-16 16:46:35 -08:00
parent f54227856f
commit 7039308d7c
1 changed files with 15 additions and 7 deletions

View 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))