[Mesa-dev] [RFC 5/5] anv: add a note about the dispatch table used by meta

Emil Velikov emil.l.velikov at gmail.com
Thu Apr 21 12:24:47 UTC 2016


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



More information about the mesa-dev mailing list