anv: Add a per-instance dispatch table
We also switch GetInstanceProcAddr over to use it. Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
This commit is contained in:
parent
a372b9247d
commit
0c399dca51
|
@ -574,6 +574,7 @@ VkResult anv_CreateInstance(
|
|||
|
||||
instance->apiVersion = client_version;
|
||||
instance->enabled_extensions = enabled_extensions;
|
||||
instance->dispatch = anv_dispatch_table;
|
||||
instance->physicalDeviceCount = -1;
|
||||
|
||||
result = vk_debug_report_instance_init(&instance->debug_report_callbacks);
|
||||
|
@ -1088,7 +1089,11 @@ PFN_vkVoidFunction anv_GetInstanceProcAddr(
|
|||
if (instance == NULL)
|
||||
return NULL;
|
||||
|
||||
return anv_lookup_entrypoint(NULL, pName);
|
||||
int idx = anv_get_entrypoint_index(pName);
|
||||
if (idx < 0)
|
||||
return NULL;
|
||||
|
||||
return instance->dispatch.entrypoints[idx];
|
||||
}
|
||||
|
||||
/* With version 1+ of the loader interface the ICD should expose
|
||||
|
|
|
@ -797,6 +797,7 @@ struct anv_instance {
|
|||
|
||||
uint32_t apiVersion;
|
||||
struct anv_instance_extension_table enabled_extensions;
|
||||
struct anv_dispatch_table dispatch;
|
||||
|
||||
int physicalDeviceCount;
|
||||
struct anv_physical_device physicalDevice;
|
||||
|
|
Loading…
Reference in New Issue