vulkan: Consolidate common ICD methods
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25998>
This commit is contained in:
@@ -370,53 +370,6 @@ radv_GetInstanceProcAddr(VkInstance _instance, const char *pName)
|
||||
#define PUBLIC
|
||||
#endif
|
||||
|
||||
PUBLIC VKAPI_ATTR VkResult VKAPI_CALL
|
||||
vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t *pSupportedVersion)
|
||||
{
|
||||
/* For the full details on loader interface versioning, see
|
||||
* <https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/loader/LoaderAndLayerInterface.md>.
|
||||
* What follows is a condensed summary, to help you navigate the large and
|
||||
* confusing official doc.
|
||||
*
|
||||
* - Loader interface v0 is incompatible with later versions. We don't
|
||||
* support it.
|
||||
*
|
||||
* - In loader interface v1:
|
||||
* - The first ICD entrypoint called by the loader is
|
||||
* vk_icdGetInstanceProcAddr(). The ICD must statically expose this
|
||||
* entrypoint.
|
||||
* - The ICD must statically expose no other Vulkan symbol unless it is
|
||||
* linked with -Bsymbolic.
|
||||
* - Each dispatchable Vulkan handle created by the ICD must be
|
||||
* a pointer to a struct whose first member is VK_LOADER_DATA. The
|
||||
* ICD must initialize VK_LOADER_DATA.loadMagic to ICD_LOADER_MAGIC.
|
||||
* - The loader implements vkCreate{PLATFORM}SurfaceKHR() and
|
||||
* vkDestroySurfaceKHR(). The ICD must be capable of working with
|
||||
* such loader-managed surfaces.
|
||||
*
|
||||
* - Loader interface v2 differs from v1 in:
|
||||
* - The first ICD entrypoint called by the loader is
|
||||
* vk_icdNegotiateLoaderICDInterfaceVersion(). The ICD must
|
||||
* statically expose this entrypoint.
|
||||
*
|
||||
* - Loader interface v3 differs from v2 in:
|
||||
* - 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().
|
||||
*
|
||||
* - Loader interface v5 differs from v4 in:
|
||||
* - The ICD must support Vulkan API version 1.1 and must not return
|
||||
* VK_ERROR_INCOMPATIBLE_DRIVER from vkCreateInstance() unless a
|
||||
* Vulkan Loader with interface v4 or smaller is being used and the
|
||||
* application provides an API version that is greater than 1.0.
|
||||
*/
|
||||
*pSupportedVersion = MIN2(*pSupportedVersion, 5u);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
/* The loader wants us to expose a second GetInstanceProcAddr function
|
||||
* to work around certain LD_PRELOAD issues seen in apps.
|
||||
*/
|
||||
@@ -426,11 +379,3 @@ vk_icdGetInstanceProcAddr(VkInstance instance, const char *pName)
|
||||
{
|
||||
return radv_GetInstanceProcAddr(instance, pName);
|
||||
}
|
||||
|
||||
PUBLIC
|
||||
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL
|
||||
vk_icdGetPhysicalDeviceProcAddr(VkInstance _instance, const char *pName)
|
||||
{
|
||||
RADV_FROM_HANDLE(radv_instance, instance, _instance);
|
||||
return vk_instance_get_physical_device_proc_addr(&instance->vk, pName);
|
||||
}
|
||||
|
Reference in New Issue
Block a user