Набор дескрипторов (descriptor set)
Связка дескрипторов ресурсов — буферов, текстур, сэмплеров, — к которым обращается шейдер; привязывается к конвейеру одним действием, а не по одному ресурсу.
Шейдер никогда не читает текстуру напрямую: он читает дескриптор — небольшой дескриптор-указатель, который называет ресурс и способ его интерпретации. Vulkan (2016) группирует дескрипторы в наборы по частоте изменения: один на кадр, один на материал, один на объект, — и движок перепривязывает лишь то, что действительно изменилось. Direct3D 12 решает ту же задачу через descriptor heaps и root signatures.
Раскладка объявляется заранее и фиксируется в root signature конвейера, поэтому драйвер не проверяет привязки при каждом draw call. Новое железо идёт дальше, к bindless: шейдер свободно индексирует одну огромную таблицу, и границы между наборами дескрипторов почти исчезают.