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

Commit d3d887ab authored by Jesse Hall's avatar Jesse Hall Committed by Ian Elliott
Browse files

Enable VK_KHR_swapchain for instances.

This is a specific instance of a general capability.  Beginning with Vulkan
1.1, physical-device commands can part of device extensions, and can be called
before the application creates a device.  vkGetInstanceProcAddr only returns
commands for enabled extensions, and so we must internally enable device
extensions inside of the instance.  This commit enables VK_KHR_swapchain so
that GIPA will return vkGetPhysicalDevicePresentRectanglesKHR.

Bug: b/71744435
Test: Modified LunarG cube demo that can successfully GIPA the command.
Change-Id: Iefb9f82d3f21e110d45f7d6aae7c8c9ea3af20b9
parent 9d22264a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -407,6 +407,12 @@ VkResult CreateInfoWrapper::SanitizeExtensions() {
    for (uint32_t i = 0; i < ext_count; i++)
        FilterExtension(ext_names[i]);

    // Enable device extensions that contain physical-device commands, so that
    // vkGetInstanceProcAddr will return those physical-device commands.
    if (is_instance_) {
        hook_extensions_.set(ProcHook::KHR_swapchain);
    }

    ext_names = extension_filter_.names;
    ext_count = extension_filter_.name_count;