Descriptor set
A bundle of resource handles — buffers, textures, samplers — that a shader accesses, bound to the pipeline in one go rather than one resource at a time.
A shader never reads a texture directly; it reads a descriptor, a small handle naming the resource and how to interpret it. Vulkan (2016) groups descriptors into sets by how often they change — one for the whole frame, one per material, one per object — so the engine rebinds only what actually moves. Direct3D 12 solves the same problem with descriptor heaps and root signatures.
The layout is declared up front and frozen in the pipeline's root signature, letting the driver skip validating bindings at every draw call. Newer hardware pushes on to bindless, where the shader indexes freely into one huge table and the boundaries between descriptor sets all but dissolve.