From: Jason Ekstrand Date: Wed, 17 Jan 2018 01:00:05 +0000 (-0800) Subject: anv/entrypoints: Expose the different dispatch tables X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2f493121aea99c9949302a62b4bec962417161b1;p=mesa.git anv/entrypoints: Expose the different dispatch tables Reviewed-by: Samuel Iglesias Gonsálvez --- diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py index 9dbf828131e..8999df90694 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -67,6 +67,10 @@ struct anv_dispatch_table { }; }; +%for layer in LAYERS: +extern const struct anv_dispatch_table ${layer}_dispatch_table; +%endfor + % for e in entrypoints: % if e.guard is not None: #ifdef ${e.guard} @@ -146,7 +150,7 @@ static const struct anv_entrypoint entrypoints[] = { % endif % endfor - const struct anv_dispatch_table ${layer}_layer = { + const struct anv_dispatch_table ${layer}_dispatch_table = { % for e in entrypoints: % if e.guard is not None: #ifdef ${e.guard} @@ -163,25 +167,25 @@ static void * __attribute__ ((noinline)) anv_resolve_entrypoint(const struct gen_device_info *devinfo, uint32_t index) { if (devinfo == NULL) { - return anv_layer.entrypoints[index]; + return anv_dispatch_table.entrypoints[index]; } const struct anv_dispatch_table *genX_table; switch (devinfo->gen) { case 10: - genX_table = &gen10_layer; + genX_table = &gen10_dispatch_table; break; case 9: - genX_table = &gen9_layer; + genX_table = &gen9_dispatch_table; break; case 8: - genX_table = &gen8_layer; + genX_table = &gen8_dispatch_table; break; case 7: if (devinfo->is_haswell) - genX_table = &gen75_layer; + genX_table = &gen75_dispatch_table; else - genX_table = &gen7_layer; + genX_table = &gen7_dispatch_table; break; default: unreachable("unsupported gen\\n"); @@ -190,7 +194,7 @@ anv_resolve_entrypoint(const struct gen_device_info *devinfo, uint32_t index) if (genX_table->entrypoints[index]) return genX_table->entrypoints[index]; else - return anv_layer.entrypoints[index]; + return anv_dispatch_table.entrypoints[index]; } /* Hash table stats: