Was ist eine Swap-Kette?
Eine Auslagerungskette ist eine Reihe von Bildpuffern oder Speicherorten im Computerspeicher, mit denen ein Bild gerendert wird, bevor es auf einem tatsächlichen Monitor oder einem anderen Gerät angezeigt wird. In einer Swap-Kette befinden sich immer mindestens zwei Framebuffer, da der erste oder aktive Puffer normalerweise als der aktuell auf dem Display angezeigte Puffer identifiziert wird. Während ein Framebuffer angezeigt wird, kann der nächste Puffer gerendert und für die Anzeige vorbereitet und bei Bedarf auf das Gerät übertragen werden. Die Verwendung einer Auslagerungskette kann einige der Probleme beseitigen, die aufgrund von Konflikten zwischen Hardware- und Software-Timing auftreten, sowie grafische Artefakte, die beim Rendern direkt auf dem Anzeigegerät auftreten können.
Die Art und Weise, wie ein Bild auf einem Monitor angezeigt wird, ist eigentlich nur eine Frage der richtigen Zahlenfolge in einem bestimmten Speicherbereich. Was sich in diesem Speicherbereich befindet, wird mehrmals pro Sekunde auf dem Bildschirm angezeigt. Ein Bildschirm wird in horizontalen Linien von der oberen linken Ecke zur unteren rechten Ecke gezeichnet. Der Moment, in dem der Bildschirm das nächste Bild startet und sich von der unteren rechten Ecke des Bildschirms zur oberen linken Ecke bewegt, wird als vertikaler Rücklauf bezeichnet.
Implementierungen eines Swap-Puffers werden nur während des vertikalen Rücklaufs auf den Bildschirm gezeichnet. Wenn dieses Timing deaktiviert ist oder ein Programm versucht, während des Renderns eines Frames auf einen Bildschirm zu zeichnen, kann eine grafische Anomalie auftreten, die als Riss bezeichnet wird. Dies tritt auf, wenn das Bild im Speicher des Anzeigegeräts während des Renderns plötzlich geändert wird und auf einer Seite des Displays das letzte Bild und auf dem restlichen Bildschirm das neue angezeigt wird.
Indem Sie eine Szene im Voraus in einen Framebuffer rendern, ist das nächste anzuzeigende Frame bereits vorbereitet und kann schnell in den Anzeigespeicher verschoben werden, damit es angezeigt wird. Während ein Bild angezeigt wird, wird das nächste in den inaktiven Framebuffer gezogen, der auch als Backbuffer bezeichnet wird. Auf diese Weise werden flüssige Animationen und visuelle Effekte erstellt, die exakt zeitgesteuert werden können, um ein Reißen zu verhindern.
Der Begriff "Auslagerungskette" wird üblicherweise als Doppelpufferung oder Dreifachpufferung bezeichnet, abhängig von der Anzahl der Frames, die vor dem aktiven Framebuffer gezeichnet werden. Die Verwendung von Nanosekunden- oder Millisekunden-Timing-Algorithmen ist ein wesentlicher Bestandteil der Verwendung einer Swap-Kette, um sicherzustellen, dass die maximale Bildrate des Monitors nicht überschritten wird und Programme ihre eigene Verarbeitung und Ressourcen auf einem System steuern können. Die Verwendung einer Swap-Kette kann bei ordnungsgemäßer Implementierung zu reibungslosen Animationen führen, unabhängig von den Eigenschaften eines Anzeigegeräts oder der Zeit, die zum Rendern eines einzelnen Animationsframes erforderlich ist.