anv/radv: Resolving 'GetInstanceProcAddr' should not require a valid instance
Since vk_icdGetInstanceProcAddr() is wired through vkGetInstanceProcAddr() in both drivers, we lost the ability for 'GetInstanceProcAddr' to resolve itself prior to having a valid instance. An upcoming spec change will fix that and allow vkGetInstanceProcAddr() to resolve itself passing NULL as instance. See https://gitlab.khronos.org/vulkan/vulkan/issues/2057 for details. This patch implements the change in both radv and anvil. CTS changes have already landed: https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2278 vulkan-loader changes have also landed: https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2278 Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4273>
This commit is contained in:
parent
665250e830
commit
4dc7b76276
|
@ -4948,6 +4948,11 @@ PFN_vkVoidFunction radv_GetInstanceProcAddr(
|
|||
LOOKUP_RADV_ENTRYPOINT(EnumerateInstanceVersion);
|
||||
LOOKUP_RADV_ENTRYPOINT(CreateInstance);
|
||||
|
||||
/* GetInstanceProcAddr() can also be called with a NULL instance.
|
||||
* See https://gitlab.khronos.org/vulkan/vulkan/issues/2057
|
||||
*/
|
||||
LOOKUP_RADV_ENTRYPOINT(GetInstanceProcAddr);
|
||||
|
||||
#undef LOOKUP_RADV_ENTRYPOINT
|
||||
|
||||
if (instance == NULL)
|
||||
|
|
|
@ -2204,6 +2204,11 @@ PFN_vkVoidFunction anv_GetInstanceProcAddr(
|
|||
LOOKUP_ANV_ENTRYPOINT(EnumerateInstanceVersion);
|
||||
LOOKUP_ANV_ENTRYPOINT(CreateInstance);
|
||||
|
||||
/* GetInstanceProcAddr() can also be called with a NULL instance.
|
||||
* See https://gitlab.khronos.org/vulkan/vulkan/issues/2057
|
||||
*/
|
||||
LOOKUP_ANV_ENTRYPOINT(GetInstanceProcAddr);
|
||||
|
||||
#undef LOOKUP_ANV_ENTRYPOINT
|
||||
|
||||
if (instance == NULL)
|
||||
|
|
Loading…
Reference in New Issue