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

Commit 922b1e37 authored by Yiwei Zhang's avatar Yiwei Zhang
Browse files

libvulkan: correctly expose VK_KHR_shared_presentable_image

The current libvulkan still make VK_KHR_shared_presentable_image depends
on VK_KHR_get_physical_device_properties2 even with proper VK1.1. This
change makes a change in code-generator.tmpl which results in adding
vkGetPhysicalDeviceProperties2 into the driver table.

Test: dEQP-VK.wsi.android.shared_presentable_image*
Bug: b/74605332
Change-Id: I5925dbc438decdc841ed4131c4f3df2a9dd1805a
parent 47a855e9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -983,6 +983,7 @@ VK_ANDROID_external_memory_android_hardware_buffer
    {{else if eq $.Name "vkDestroyImage"}}true

    {{else if eq $.Name "vkGetPhysicalDeviceProperties"}}true
    {{else if eq $.Name "vkGetPhysicalDeviceProperties2"}}true
    {{else if eq $.Name "vkGetPhysicalDeviceProperties2KHR"}}true
    {{end}}

+8 −3
Original line number Diff line number Diff line
@@ -801,7 +801,8 @@ bool QueryPresentationProperties(
    const InstanceData& data = GetData(physicalDevice);

    // GPDP2 must be present and enabled on the instance.
    if (!data.driver.GetPhysicalDeviceProperties2KHR)
    if (!data.driver.GetPhysicalDeviceProperties2KHR &&
        !data.driver.GetPhysicalDeviceProperties2)
        return false;

    // Request the android-specific presentation properties via GPDP2
@@ -819,8 +820,12 @@ bool QueryPresentationProperties(
    presentation_properties->pNext = nullptr;
    presentation_properties->sharedImage = VK_FALSE;

    if (data.driver.GetPhysicalDeviceProperties2KHR) {
        data.driver.GetPhysicalDeviceProperties2KHR(physicalDevice,
                                                    &properties);
    } else {
        data.driver.GetPhysicalDeviceProperties2(physicalDevice, &properties);
    }

    return true;
}
+1 −0
Original line number Diff line number Diff line
@@ -494,6 +494,7 @@ bool InitDriverTable(VkInstance instance,
    INIT_PROC(true, instance, CreateDevice);
    INIT_PROC(true, instance, EnumerateDeviceExtensionProperties);
    INIT_PROC(false, instance, EnumeratePhysicalDeviceGroups);
    INIT_PROC(false, instance, GetPhysicalDeviceProperties2);
    INIT_PROC_EXT(EXT_debug_report, true, instance, CreateDebugReportCallbackEXT);
    INIT_PROC_EXT(EXT_debug_report, true, instance, DestroyDebugReportCallbackEXT);
    INIT_PROC_EXT(EXT_debug_report, true, instance, DebugReportMessageEXT);
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ struct InstanceDriverTable {
    PFN_vkCreateDevice CreateDevice;
    PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
    PFN_vkEnumeratePhysicalDeviceGroups EnumeratePhysicalDeviceGroups;
    PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2;
    PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
    PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
    PFN_vkDebugReportMessageEXT DebugReportMessageEXT;