Bufor ramki
Pamięć obrazu pracuje w bardzo specyficznych warunkach. podlega ona jednoczesnemu zapisywaniu (przez kontroler graficzny) i odczytywaniu (przez przetwornik RAM-DAC). Gdyby wszystko miało się odbywać w obrębie tego samego bloku pamięciowego, przetwornik musiałby czekać na ostateczne zakończenie procesu zapisu. Do momentu odczytania ostatniego piksela nie wolno byłoby z kolei, co zapisywać (wówczas oczekuje kontroler). Aby wymienione dwa procesy nie zakłócały się wzajemnie, wprowadzono podwójne buforowanie (Dual Buffering). Do dyspozycji kontrolera graficznego przekazuje się dwa jednakowe bufory pamięciowe. Jeśli jeden z nich wypełniany jest świeżą treścią (Back Buffer), drugi można oddać do dyspozycji RAM-DAC, by przekazał kompletną zawartość na ekran (Front Buffer). W ten sposób zawsze jakiś bufor jest pokazywany, a jakiś jest gotów do zapisu i wspomniane dwa procesy nie zakłócają się wzajemnie.
Moment przełączenia buforów musi wypadać w chwili, gdy generowany jest kolejny impuls synchronizujący w pionie, w przeciwnym razie obraz podzielony zostanie poziomą linią. Może się jednak zdarzyć, iż mimo nadejścia kolejnego impulsu VSYNC akcelerator nie zdążył z kompletnym wypełnieniem bufora.
Rozważmy prosty przykład. śracujemy w trybie 60 Hz i RAM-DAC generuje, co 1/60 sekundy impuls synchronizacji pionowej. Jeżeli czas obliczeń jednej sceny wyniesie tylko nieco dłużej niż 1/60 sekundy (na przykład 1/59 sekundy), to kontroler przegapi o ułamek sekundy moment przełączenia i musi czekać na nadejście następnego. W tym czasie procesor graficzny jest bezczynny. Do jednego z buforów nie może jeszcze zapisywać, (bo nie został do tej pory wyświetlony), a drugi bufor jest aktualnie pokazywany i też nie można go zamazywać. Rzeczywista częstotliwość odtwarzania obrazu wynosi w tym przypadku już tylko 30 fps (Frame per Second, obrazy/sekundę).
Rozwiązanie tego problemu możliwe jest jedynie poprzez wprowadzenie trzeciego bufora (Triple Buffering). śrzy podziale na 3 bufory odpada czas oczekiwania na impuls syn- chronizacyjny, bowiem kontroler zawsze dysponuje jakimś obszarem pamięci, do którego może zapisywać wyniki swoich obliczeń. Wadą tego rozwiązania jest zmienna częstotliwość odtwarzania [fps], bowiem nie ma już mechanizmu wyzwalającego w równych odstępach czasowych moment przełączania buforów. śołączenie zalet sztywnej synchronizacji ze stałą możliwością zapisu do jednego z buforów możliwe jest w układach implementujących bufory poczwórne {Quad Buffering).
Warto nadmienić, iż zapis do pamięci obrazu odbywać się może zarówno przy włączonej, jak i wyłączonej synchronizacji z impulsami VSYNC- Synchronizację wyłącza się zwykle w celach pomiarowych, np. uruchamiając programy typu Bench-Mark. Kontroler może wtedy zapisywać do bufora obrazu z narzucaną przez siebie prędkością i nie musi czekać na moment powrotu wiązki elektronów w cyklu odchylania pionowego. Osiągane w tych anormalnych okolicznościach wartości fps sięgają daleko powyżej 100 obrazów na sekundę. W warunkach rzeczywistych odtwarzana jest jakaś aplikacja, a nie program testujący. Kontroler graficzny musi, więc, wypełniwszy w całości bufor obrazu, poczekać na nadejście kolejnego impulsu synchronizacyjnego, (jeśli chce pokazać kompletny obraz). śrzy takich zależnościach częstotliwość powtarzania obrazu 3D nie leży nigdy powyżej częstotliwości odchylania pionowego, z którą pracuje monitor.
Bufor Z/W