Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c889d3c5 authored by Yiwei Zhang's avatar Yiwei Zhang
Browse files

libvulkan: make vkEnumerateInstanceVersion trigger driver loading

This is a globally dispatched api, and it's the best option to preload
the driver in Zygote with minimum overhead.

This change also updates some return codes according to the spec.

Bug: 135536511
Test: take a trace and verify driver is loaded
Change-Id: I6fe425ec568b13577d3d9471aa5f181cff44c61c
parent 8dcf124c
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1256,7 +1256,7 @@ VkResult EnumerateInstanceLayerProperties(uint32_t* pPropertyCount,
    ATRACE_CALL();

    if (!EnsureInitialized())
        return VK_ERROR_INITIALIZATION_FAILED;
        return VK_ERROR_OUT_OF_HOST_MEMORY;

    uint32_t count = GetLayerCount();

@@ -1280,7 +1280,7 @@ VkResult EnumerateInstanceExtensionProperties(
    ATRACE_CALL();

    if (!EnsureInitialized())
        return VK_ERROR_INITIALIZATION_FAILED;
        return VK_ERROR_OUT_OF_HOST_MEMORY;

    if (pLayerName) {
        const Layer* layer = FindLayer(pLayerName);
@@ -1456,6 +1456,11 @@ VkResult EnumerateDeviceExtensionProperties(
VkResult EnumerateInstanceVersion(uint32_t* pApiVersion) {
    ATRACE_CALL();

    // Load the driver here if not done yet. This api will be used in Zygote
    // for Vulkan driver pre-loading because of the minimum overhead.
    if (!EnsureInitialized())
        return VK_ERROR_OUT_OF_HOST_MEMORY;

    *pApiVersion = VK_API_VERSION_1_1;
    return VK_SUCCESS;
}