Indirect draw
Una draw call i cui numero di vertici, numero di istanze e offset vengono letti da un buffer della GPU anziché passati dalla CPU, lasciando che sia la GPU a decidere cosa disegnare.
Una normale draw call riceve i propri parametri (quanti vertici, quante istanze, dove si trovano nel buffer) direttamente dalla CPU. Una chiamata indiretta, invece, punta a un piccolo buffer nella memoria della GPU che contiene proprio quei numeri. OpenGL ha introdotto glDrawArraysIndirect nella 4.0 (2010) e la variante multipla glMultiDrawIndirect nella 4.3; Vulkan ha vkCmdDrawIndirect e Direct3D ExecuteIndirect.
Il vantaggio è che la CPU non deve più sapere quanti oggetti sono risultati visibili. Un passaggio precedente della GPU può scartare la geometria occlusa, compattare la lista e scrivere il conteggio, senza alcun viaggio di andata e ritorno verso il processore. La forma multi-draw va oltre: un singolo buffer descrive migliaia di disegni distinti in una sola chiamata. È la chiave di volta del rendering guidato dalla GPU.