anv: Make entrypoint resolution take a gen_device_info
In order for things such as the ANV_CALL and the ifuncs to work, we used to have a singleton gen_device_info structure that got assigned the first time you create a device. Given that the driver will never be used simultaneously on two different generations of hardware, this was fairly safe to do. However, it has caused a few hickups and isn't, in general, a good plan. Now that the two primary reasons for this singleton are gone, we can get rid of it and make things quite a bit safer. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -682,7 +682,7 @@ PFN_vkVoidFunction anv_GetInstanceProcAddr(
|
||||
VkInstance instance,
|
||||
const char* pName)
|
||||
{
|
||||
return anv_lookup_entrypoint(pName);
|
||||
return anv_lookup_entrypoint(NULL, pName);
|
||||
}
|
||||
|
||||
/* With version 1+ of the loader interface the ICD should expose
|
||||
@@ -702,10 +702,11 @@ VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(
|
||||
}
|
||||
|
||||
PFN_vkVoidFunction anv_GetDeviceProcAddr(
|
||||
VkDevice device,
|
||||
VkDevice _device,
|
||||
const char* pName)
|
||||
{
|
||||
return anv_lookup_entrypoint(pName);
|
||||
ANV_FROM_HANDLE(anv_device, device, _device);
|
||||
return anv_lookup_entrypoint(&device->info, pName);
|
||||
}
|
||||
|
||||
static VkResult
|
||||
@@ -854,8 +855,6 @@ VkResult anv_CreateDevice(
|
||||
return vk_error(VK_ERROR_EXTENSION_NOT_PRESENT);
|
||||
}
|
||||
|
||||
anv_set_dispatch_devinfo(&physical_device->info);
|
||||
|
||||
device = anv_alloc2(&physical_device->instance->alloc, pAllocator,
|
||||
sizeof(*device), 8,
|
||||
VK_SYSTEM_ALLOCATION_SCOPE_DEVICE);
|
||||
|
Reference in New Issue
Block a user