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

Commit 85bb0c5a authored by Jesse Hall's avatar Jesse Hall
Browse files

vulkan: Temporarily hack around loader/driver mismatch

A driver was built with an older declaration of
vkGetSwapchainGrallocUsage2KHR, and doesn't match what libvulkan
expects. This is a temporary workaround until the driver can be
rebuilt against the current header. When a new driver is available,
this change should be reverted.

Test: vulkanGears on affected device
Change-Id: I5a8bb16f0f9563e32314cff2a2a7a45760cfc356
parent d1abd745
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -963,6 +963,8 @@ VK_KHR_shared_presentable_image
    {{else if eq $.Name "vkCreateImage"}}true
    {{else if eq $.Name "vkDestroyImage"}}true

    {{else if eq $.Name "vkGetPhysicalDeviceProperties"}}true

    {{end}}

    {{$ext := GetAnnotation $ "extension"}}
+5 −0
Original line number Diff line number Diff line
@@ -916,7 +916,12 @@ VkResult CreateDevice(VkPhysicalDevice physicalDevice,
        return VK_ERROR_INCOMPATIBLE_DRIVER;
    }

    VkPhysicalDeviceProperties properties;
    instance_data.driver.GetPhysicalDeviceProperties(physicalDevice,
                                                     &properties);

    data->driver_device = dev;
    data->driver_version = properties.driverVersion;

    *pDevice = dev;

+1 −0
Original line number Diff line number Diff line
@@ -102,6 +102,7 @@ struct DeviceData {

    VkDevice driver_device;
    DeviceDriverTable driver;
    uint32_t driver_version;
};

bool Debuggable();
+1 −0
Original line number Diff line number Diff line
@@ -387,6 +387,7 @@ bool InitDriverTable(VkInstance instance,
    INIT_PROC(true, instance, DestroyInstance);
    INIT_PROC(true, instance, EnumeratePhysicalDevices);
    INIT_PROC(true, instance, GetInstanceProcAddr);
    INIT_PROC(true, instance, GetPhysicalDeviceProperties);
    INIT_PROC(true, instance, CreateDevice);
    INIT_PROC(true, instance, EnumerateDeviceExtensionProperties);
    INIT_PROC_EXT(EXT_debug_report, true, instance, CreateDebugReportCallbackEXT);
+1 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ struct InstanceDriverTable {
    PFN_vkDestroyInstance DestroyInstance;
    PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
    PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
    PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
    PFN_vkCreateDevice CreateDevice;
    PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
    PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
Loading