diff options
author | Jason Ekstrand <[email protected]> | 2018-01-16 16:52:50 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-01-23 00:15:40 -0800 |
commit | 083e1266942b7bbcc038dfa20735d198db118493 (patch) | |
tree | 556337f1f783b309db54a62931f4ca26e97ab39a /src | |
parent | 7039308d7c9a2d488f13cd40a949196dc03034d4 (diff) |
anv/entrypoints: Split entrypoint index lookup into its own function
Reviewed-by: Samuel Iglesias Gonsálvez <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/intel/vulkan/anv_entrypoints_gen.py | 19 | ||||
-rw-r--r-- | src/intel/vulkan/anv_private.h | 2 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py index 6c922b8a642..9dbf828131e 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -215,8 +215,8 @@ static const uint16_t map[] = { % endfor }; -void * -anv_lookup_entrypoint(const struct gen_device_info *devinfo, const char *name) +int +anv_get_entrypoint_index(const char *name) { static const uint32_t prime_factor = ${prime_factor}; static const uint32_t prime_step = ${prime_step}; @@ -232,15 +232,24 @@ anv_lookup_entrypoint(const struct gen_device_info *devinfo, const char *name) do { i = map[h & ${hash_mask}]; if (i == none) - return NULL; + return -1; e = &entrypoints[i]; h += prime_step; } while (e->hash != hash); if (strcmp(name, strings + e->name) != 0) - return NULL; + return -1; + + return i; +} - return anv_resolve_entrypoint(devinfo, i); +void * +anv_lookup_entrypoint(const struct gen_device_info *devinfo, const char *name) +{ + int idx = anv_get_entrypoint_index(name); + if (idx < 0) + return NULL; + return anv_resolve_entrypoint(devinfo, idx); }""", output_encoding='utf-8') NONE = 0xffff diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 36d87e2f176..1fd7c39567d 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -2816,6 +2816,8 @@ struct anv_query_pool { struct anv_bo bo; }; +int anv_get_entrypoint_index(const char *name); + void *anv_lookup_entrypoint(const struct gen_device_info *devinfo, const char *name); |