turnip: Instance can be NULL resolving 'GetInstanceProcAddr' entry point
authorEduardo Lima Mitev <elima@igalia.com>
Fri, 20 Mar 2020 08:32:03 +0000 (09:32 +0100)
committerEduardo Lima Mitev <elima@igalia.com>
Sat, 21 Mar 2020 17:56:07 +0000 (18:56 +0100)
Using turnip driver without a vulkan loader is currently broken because
the entry point resolver is expecting a valid instance when resolving
'vkGetInstanceProcAddr' through vk_icdGetInstanceProcAddr().

Reviewed-by: Jonathan Marek <jonathan@marek.ca>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4257>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4257>

src/freedreno/vulkan/tu_entrypoints_gen.py

index facbb69fa78e531949aadc81550db848bfaadab1..03c3afc3e7fd241e8c45684074e43dfb2444b821 100644 (file)
@@ -206,7 +206,7 @@ tu_entrypoint_is_enabled(int index, uint32_t core_version,
    % if not e.device_command:
       if (device) return false;
    % endif
-   % if e.name == 'vkCreateInstance' or e.name == 'vkEnumerateInstanceExtensionProperties' or e.name == 'vkEnumerateInstanceLayerProperties' or e.name == 'vkEnumerateInstanceVersion':
+   % if e.name == 'vkGetInstanceProcAddr' or e.name == 'vkCreateInstance' or e.name == 'vkEnumerateInstanceExtensionProperties' or e.name == 'vkEnumerateInstanceLayerProperties' or e.name == 'vkEnumerateInstanceVersion':
       return !device;
    % elif e.core_version:
       return instance && ${e.core_version.c_vk_version()} <= core_version;