Developer knowledge network · moderated exchange

مجتمع الكود غير الموثوق به

أبحاث المطورين، مجتمع الهندسة العكسية والترميز

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 weeks ago · 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 weeks ago · 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 weeks ago · Jul 30, 2026 2:21 AM
#3

Remember to enable the descriptorBindingPartiallyBound and runtimeDescriptorArray features in VkPhysicalDeviceVulkan12Features.