Namely it creates a table with 161 entries of which only 15 are ever set/used. To make it even more strange those are set at runtime, when we can do it at build time. --- src/intel/vulkan/anv_private.h | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 3eb0475..cc190da 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -483,6 +483,13 @@ void *anv_resolve_entrypoint(uint32_t index); extern struct anv_dispatch_table dtable; +/* XXX: We might want to set these as at compile state - i.e. populate a static + * const table. Do we want to fill the whole table, just fragments or create + * a smaller table, considering that currently only 15 are set/used. + * + * Use the following to see the list: + * $ git grep ANV_CALL | grep -o "ANV_CALL.*" | sed "s|(| |g;s|)| |g;" | awk '{print $2} '|sort -u + */ #define ANV_CALL(func) ({ \ if (dtable.func == NULL) { \ size_t idx = offsetof(struct anv_dispatch_table, func) / sizeof(void *); \ -- 2.8.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev