Skip to content

Use descriptor buffers to implement descriptor management for Vulkan. #163

@crud89

Description

@crud89

Describe your problem

Currently, the Vulkan backend uses the default descriptor set allocation strategy based on descriptor pools. The process of abstracting those away is pretty involved and requires some heuristic assumptions about the size of those pools, that are never truly optimal. D3D12 uses a less complex model based on descriptor heaps, that are basically large chunks of memory that store descriptors. The VK_EXT_descriptor_buffer extension attempts to emulate a similar behavior. Implementing it would have several advantages, notably we could provide a common architecture for allocating and managing descriptors and descriptor sets. Furthermore, we would eliminate some major pitfalls. Most notably the current implementation raises validation warnings, if multiple runtime arrays are bound at the same time. Using descriptor buffers, we would eliminate the need to per-determine descriptor pool sizes and also fix this issue along the way.

Metadata

Metadata

Assignees

Labels

FeatureNew feature or request.Vulkan 🌋The issue involves the Vulkan backend.

Projects

Status

v0.5.1

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions