for each view {
bind view resources // camera, environment...
for each shader {
bind shader pipeline
bind shader resources // shader control values
for each material {
bind material resources // material parameters and textures
for each object {
bind object resources // object transforms
draw object
}
}
}
}for each object {
update descriptor arrays
}
bind everything
for each view {
set global data index // camera, lighting, shadow maps etc
for each shader {
bind shader pipeline // still have to bind the pipeline
for each object {
set material data index // containts the texture indices
set object data index // contains object matrix indices
draw object
}
}
}CopyDescriptorsSimple (DX12)
vkUpdateDescriptorSets (Vulkan)
Cross vendor extension
All I had time to research about it
Probably has something to do with AZDO techniques