diff options
author | Eric Engestrom <[email protected]> | 2019-09-08 00:11:01 +0300 |
---|---|---|
committer | Lionel Landwerlin <[email protected]> | 2019-09-20 08:31:58 +0000 |
commit | 3c1a24de076ac47417d8942e3d8c7168006fc94f (patch) | |
tree | ca95e6b4ec45b9830dfe5d818593783118980cef /src/intel | |
parent | 19db95e78eb03d598c60487cc7939a507784530f (diff) |
anv: implement ICD interface v4
Signed-off-by: Eric Engestrom <[email protected]>
Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 391a5576306..7382f057629 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -2021,6 +2021,31 @@ PFN_vkVoidFunction anv_GetDeviceProcAddr( return device->dispatch.entrypoints[idx]; } +/* With version 4+ of the loader interface the ICD should expose + * vk_icdGetPhysicalDeviceProcAddr() + */ +PUBLIC +VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr( + VkInstance _instance, + const char* pName); + +PFN_vkVoidFunction vk_icdGetPhysicalDeviceProcAddr( + VkInstance _instance, + const char* pName) +{ + ANV_FROM_HANDLE(anv_instance, instance, _instance); + + if (!pName || !instance) + return NULL; + + int idx = anv_get_physical_device_entrypoint_index(pName); + if (idx < 0) + return NULL; + + return instance->physicalDevice.dispatch.entrypoints[idx]; +} + + VkResult anv_CreateDebugReportCallbackEXT(VkInstance _instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, @@ -4090,7 +4115,10 @@ vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pSupportedVersion) * - The ICD must implement vkCreate{PLATFORM}SurfaceKHR(), * vkDestroySurfaceKHR(), and other API which uses VKSurfaceKHR, * because the loader no longer does so. + * + * - Loader interface v4 differs from v3 in: + * - The ICD must implement vk_icdGetPhysicalDeviceProcAddr(). */ - *pSupportedVersion = MIN2(*pSupportedVersion, 3u); + *pSupportedVersion = MIN2(*pSupportedVersion, 4u); return VK_SUCCESS; } |