Naja, der command buffer war mal auf mobilen Geräten ein Problem, denn wenn der kleiner ist als die Daten die er halten soll, muss zwischendurch synchronisiert werden. Aber ansonsten hatte ich da noch absolut keine Probleme?
Das einzige was wirklich oft ein Bottleneck ist, ist der Treiberoverhead der API Calls, da hier auch oft noch recht viele Daten kopiert werden. Da gibt es inzwischen den Ansatz von bindless Ressourcen, da gibt man dem Treiber nurnoch Pointer auf die Daten und der holt sich die dann direkt von da. Aber das ist alles noch recht neu, wird aber zumindest von NVIDIA und zumindest teilweise auch von AMD unterstützt und reduziert den Overhead angeblich extrem.
Ich kann mir Vorstellen, dass multi gpu kompliziert wird wenn man explizit dafür entwickelt und auch neue Schwierigkeiten für das Synchronisieren bringt. Aber im Hobbybereich geht das doch tendenziell etwas weit? GLFlush wartet aber doch auch nicht auf die GPU sondern zwingt den Treiber nur seine aktuellen Befehle der Grafikkarte zu geben. Das ist natürlich langsamer als ohne, aber kein böses glFinish
. Ansonsten hatte ich bisher noch keine Probleme mit vielen Postprocessing Effekten und so.