Skip to content

VkBuffer aliasing is not handled correctly in VulkanDeviceAddressTracker #2822

@fabian-lunarg

Description

@fabian-lunarg

arbitrary many VkBuffer can be defined for the same VkMemory or VkDeviceAddress-range.
(encode/decode)::VulkanDeviceAddressTracker currently assumes a 1:1 relation,
which cannot work correctly when buffer-aliasing is actively used.

the correct relation VkBuffer<->VkDeviceAddress is N:1, the lookup:
VkBuffer GetBufferByDeviceAddress(VkDeviceAddress device_address) const;

needs to be refactored to e.g.:
std::unordered_set<VkBuffer> GetBufferByDeviceAddress(VkDeviceAddress device_address) const;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions