Skip to content
This repository was archived by the owner on Jul 29, 2021. It is now read-only.
This repository was archived by the owner on Jul 29, 2021. It is now read-only.

Overlay layer gets vkCreateDevice pointer illegally #308

@lenny-lunarg

Description

@lenny-lunarg

Inside vkCreateDevice the overlay layer gets a pointer to the next layer like:

PFN_vkCreateDevice fpCreateDevice = (PFN_vkCreateDevice)fpGetInstanceProcAddr(NULL, "vkCreateDevice");

The Vulkan spec here states that calling vkGetInstanceProcAddr with a NULL instance must return NULL for all but a few functions listed out in the spec. As such, a conforming implementation is required to return null here (though no implementation actually does).

The fix is to look up the correct VkInstance handle associate with the VkPhysicalDevice handle that is passed by this function and to pass that instance handle to vkGetInstanceProcAddr.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions