Hvad er en swapkæde?
En swapkæde er en serie rammebuffere eller placeringer i computerhukommelse, der bruges til at gengive et billede, før det vises på en faktisk skærm eller anden enhed. Der er altid mindst to framebuffere i en swapkæde, fordi den første eller aktive buffer normalt identificeres som den, der i øjeblikket vises på displayet. Mens en rammebuffer vises, kan den næste buffer gengives og forberedes til visning og derefter omskiftes til enheden efter behov. Brug af en swapkæde kan eliminere nogle af de problemer, der opstår på grund af konflikter mellem hardware og software timing, såvel som grafiske artefakter, der kan vises på grund af gengivelse direkte til displayenheden.
Den måde, hvorpå et billede vises på en skærm, er egentlig kun et spørgsmål om at placere den rigtige rækkefølge af numre i et specifikt hukommelsesområde. Uanset hvad der er i dette hukommelsesområde tegnes på skærmen flere gange hvert sekund. En skærm tegnes i vandrette linjer fra øverste venstre hjørne til nederste højre hjørne. Det øjeblik, hvor skærmen starter den næste ramme, når den bevæger sig fra nederste højre hjørne af skærmen til øverste venstre hjørne, kaldes lodret tilbagetrækning.
Implementeringer af en swapbuffer trækkes kun til skærmen under lodret tilbagetrækning. Hvis denne timing er slået fra, eller hvis et program forsøger at tegne til en skærm i perioder, hvor en ramme gengives, kan der vises en grafisk afvigelse kendt som en tåre. Dette sker, når billedet i skærmens hukommelse pludselig ændres midt i gengivelsen, hvilket får den ene side af displayet til at vise den sidste ramme, og resten af skærmen viser den nye.
Ved at gengive en scene forud for tid i en framebuffer er den næste ramme, der skal vises, allerede forberedt og kan hurtigt skubbes ind i skærmhukommelsen, så den vises. Mens det ene billede vises, tegnes det næste i den inaktive rammebuffer, også kaldet en bagbuffer. Dette skaber glatte animationer og visuelle effekter, der kan nøjagtigt tidsbestemmes for at forhindre rive.
Udtrykket "swap chain" er mere almindeligt kendt som dobbeltbuffer eller triple buffering, afhængigt af antallet af rammer, der tegnes i forkant af den aktive framebuffer. Brug af nanosekund eller millisekund timing algoritmer er en væsentlig del af brugen af en swapkæde for at sikre, at den maksimale billedhastighed for skærmen ikke overskrides, og at programmer kan sætte tempo i deres egen behandling og ressourcer på et system. Anvendelse af en swapkæde, hvis den er korrekt implementeret, kan resultere i glatte animationer uanset egenskaberne for en skærmenhed eller den tid det tager at gengive en enkelt animationsramme.