Co je to Swap Chain?
Swapový řetězec je řada framebufferů nebo míst v počítačové paměti, které se používají k vykreslení obrazu před jeho zobrazením na skutečném monitoru nebo jiném zařízení. Ve swapovém řetězci jsou vždy alespoň dva framebuffery, protože první nebo aktivní vyrovnávací paměť je obvykle identifikována jako ta, která je právě zobrazena na displeji. Zatímco je zobrazen jeden framebuffer, může být další vyrovnávací paměť vykreslena a připravena k zobrazení a poté podle potřeby přepnuta do zařízení. Použití odkládacího řetězce může eliminovat některé problémy, které se vyskytnou kvůli konfliktům mezi časováním hardwaru a softwaru, jakož i grafickými artefakty, které se mohou objevit kvůli vykreslení přímo na zobrazovací zařízení.
Způsob, jakým je obrázek zobrazen na monitoru, je opravdu jen otázkou správného pořadí čísel do určité oblasti paměti. Cokoli v této oblasti paměti, je na obrazovku několikrát každou vteřinu. Obrazovka je nakreslena vodorovnými čarami z levého horního rohu do pravého dolního rohu. Okamžik, kdy obrazovka začíná další snímek, když se pohybuje z pravého dolního rohu obrazovky do levého horního rohu, se nazývá vertikální retrace.
Implementace odkládacího bufferu se na obrazovku přitahují pouze při vertikálním návratu. Pokud je toto načasování vypnuto nebo pokud se program pokouší vykreslit na obrazovku během období, kdy je vykreslen rámeček, může se objevit grafická anomálie známá jako slza. K tomu dochází, když se obraz v paměti zobrazovacího zařízení náhle změní uprostřed vykreslování, což způsobí, že jedna strana displeje zobrazí poslední snímek a zbytek obrazovky zobrazí nový snímek.
Vykreslením scény dopředu do framebufferu je již připraven další zobrazený snímek a lze jej rychle zasunout do paměti displeje, aby se zobrazil. Když je zobrazen jeden obrázek, další je nakreslen v neaktivní framebuffer, také nazývaný zadní vyrovnávací paměť. To vytváří plynulé animace a vizuální efekty, které lze přesně načasovat, aby nedošlo k roztržení.
Termín "odkládací řetězec" je běžněji znám jako dvojité nebo trojité ukládání do paměti, v závislosti na počtu rámců, které jsou kresleny před aktivním framebufferem. Použití algoritmů časování nanosekund nebo milisekund je nezbytnou součástí používání swapového řetězce, aby bylo zajištěno, že nebude překročena maximální snímková frekvence monitoru a že programy mohou v systému stimulovat vlastní zpracování a zdroje. Používání odkládacího řetězce, pokud je správně implementováno, může vést k plynulým animacím bez ohledu na vlastnosti zobrazovacího zařízení nebo množství času, které je třeba k vykreslení jediného snímku animace.