Skip to content

Descriptor Indexing #6

@SpinnerX

Description

@SpinnerX

Overview

Descriptor indexing is a very useful feature to utilize in Vulkan. Descriptor indexing is for managing how resources are accessed.

vulkan-cpp is in need for getting abstractions around the vulkan API for getting descriptor indexing working. The way the API will work is going to take quite a bit of experimentation.

Reasons to use Descriptor Indexing

  • Minimize need for CPU to re-bind resources that are already available to access. (Bindless textures, etc)
  • Batching draw calls by having one single giant descriptor that can be reused across multiple draw-calls if needed without having to re-bind those same resources everytime.
  • Goal with descriptor indexing is to move from a per-object/per-material bindings to a per-frame or persistent global bindings
  • Re-binding has its own sets of cost dealing with high resources, when you have to record state when doing vkCmdBindDescriptorSets.

What does descriptor indexing enable?

  • Allows for updating descriptor sets IF it is not in use.
  • update-after-bind mindsets, such as if you have newly loaded textures, you can update without needing to bind those descriptors.

To enable descriptor indexing

  • VK_EXT_descriptor_indexing

API Design

TBD

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions