radv: Support loader interface version 3.
Port of 1e41d7f7b0855934744fe578ba4eae9209ee69f7: "anv: Support loader interface version 3 (patch v2)" Signed-off-by: Bas Nieuwenhuizen <basni@google.com> Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
ddd27ef462
commit
6d2fb04f09
|
@ -2032,3 +2032,48 @@ void radv_DestroySampler(
|
|||
return;
|
||||
vk_free2(&device->alloc, pAllocator, sampler);
|
||||
}
|
||||
|
||||
|
||||
/* vk_icd.h does not declare this function, so we declare it here to
|
||||
* suppress Wmissing-prototypes.
|
||||
*/
|
||||
PUBLIC VKAPI_ATTR VkResult VKAPI_CALL
|
||||
vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t *pSupportedVersion);
|
||||
|
||||
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.
|
||||
*/
|
||||
*pSupportedVersion = MIN2(*pSupportedVersion, 3u);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue