Angenommen, die GPU verfügt über mehrere Rückpuffer, in die gerendert werden soll.Grafik - Mehrfache Pufferung: In Warteschlange oder zuletzt abgeschlossen?
Timeline:
- Rahmen 0 in Front Buffer
- Bildschirmaktualisierungs - Frame 0 auf dem Bildschirm
- Run Spiel Schleife, senden alle
- Run Spiel Befehle für Frame 1 zu GPU machen Schleife, sende alle Renderbefehle für Frame 2 an GPU
- GPU verarbeitet alle Befehle für Frame 1 und rendert Frame 1 in Back Buffer 1
- GPU verarbeitet alle Befehle für Frame 2 und rahmt Frame 2 in Back Puffer 2
- Bildschirmaktualisierung - Frame? auf dem Bildschirm
Gedanken:
- In der GPU für VSYNC erzählt wird nicht warten, ich bin zu raten, da eine 5 (b) und eine 6 (b), wo die GPU Kopien der gerade abgeschlossene Rückpuffer in den Frontpuffer. In diesem Fall wird Frame 2 angezeigt.
- Wenn die GPU angewiesen wird auf VSYNC zu warten, tauscht die GPU die Puffer nicht aus, nachdem sie abgeschlossen sind. Aber wenn die Zeit kommt, um Puffer zu tauschen, weiß ich nicht, welchen Puffer es wählt.
Wenn möglich, würde ich gerne sehen, siehe Dokumentation. Ich weiß nur nicht, auf welcher Ebene die Semantik definiert ist.