Skip to content

Descriptor Heap Support #524

@codecnotsupported

Description

@codecnotsupported

Whilst descriptor heap can be used with regular descriptor sets/bindings.
It also allows for untyped access which is much more flexible.

// VkPhysicalDeviceDescriptorHeapPropertiesEXT::bufferDescriptorSize == 16 (0x10)
layout(descriptor_heap) buffer SSBO {
    vec4 payload;
} s_buffers[];

void main() {
    s_buffers[6].payload = vec4(1.0);
}

https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_descriptor_heap.html
https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_untyped_pointers.html
https://github.com/KhronosGroup/SPIRV-Guide/blob/main/chapters/untyped_pointers.md

https://docs.vulkan.org/guide/latest/descriptor_heap.html#_untyped_shader_model
https://docs.vulkan.org/refpages/latest/refpages/source/VK_EXT_descriptor_heap.html
https://docs.vulkan.org/features/latest/features/proposals/VK_EXT_descriptor_heap.html

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