Whilst descriptor heap can be used with regular descriptor sets/bindings. It also allows for untyped access which is much more flexible. ```glsl // 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
Whilst descriptor heap can be used with regular descriptor sets/bindings.
It also allows for untyped access which is much more flexible.
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