What are the benefits of moving from descriptor sets to heaps?
Descriptors are vendor-specific bytes that describe resources such as buffers and textures. For example, a descriptor might consist of a low-level pointer plus some metadata, but to the shader it is simply an opaque chunk of memory. The resource binding process largely consists of managing descriptors and methods of accessing them in both CPU and shader code. Vulkan originally only provided descriptor sets, which are arrays of descriptors that can be composed and reused by different shaders. These require cumbersome descriptor set layouts, additional grouping, and allocation through pools. The