Developer knowledge network · moderated exchange

Супольнасць UnreliableCode

Супольнасць распрацоўшчыкаў даследаванняў, зваротнага праектавання і кадавання

Knowledge indexжыць
4Categories
919Threads
2.8KПаведамленні
Tutorial

Understanding Vulkan Descriptor Indexing (Bindless Textures) vs Classic Descriptor Sets [StackOverflow Architecture Guide]

graphics_pipeline_pro
DirectX / Vulkan Engineer
MEMBER
прадстаўнік: 172
Дата далучэння: Sep 2018
Паведамленні: 10
Дзякуй: 51
3 тыдняў таму · Jul 29, 2026 3:01 PM
#1

Why traditional descriptor set binding is a bottleneck in modern graphics engines:

In legacy Vulkan, drawing a mesh with 20 different materials required updating and rebinding descriptor sets (vkCmdBindDescriptorSets) between draw calls, stalling the CPU-GPU pipeline.

Bindless Descriptor Indexing:

  • Array of all 10,000 textures in the game bound to a single unbounded descriptor array: layout(binding = 0) uniform sampler2D textures[];.
  • Vertex / Material data passes an integer texture index (uint textureId).
  • Shaders sample dynamically: vec4 color = texture(textures[nonuniformEXT(mat.textureId)], uv);.

Reduces 1,000 draw call state changes down to a single batched multi-draw indirect command!

shader_magician
HLSL / GLSL Dev
MEMBER
прадстаўнік: 176
Дата далучэння: Jan 2021
Паведамленні: 8
Дзякуй: 32
3 тыдняў таму · Jul 29, 2026 7:40 PM
#2

Bindless rendering is the single biggest architectural shift in modern rendering engines (Unreal 5, Frostbite, id Tech).

dx12_render_dev
DX12 Master
MEMBER
прадстаўнік: 55
Дата далучэння: Oct 2020
Паведамленні: 9
Дзякуй: 65
3 тыдняў таму · Jul 30, 2026 2:21 AM
#3

Remember to enable the descriptorBindingPartiallyBound and runtimeDescriptorArray features in VkPhysicalDeviceVulkan12Features.