Hlavní navigace

Vlákno názorů k článku Grafické operace přímo podporované čipy karty VGA od MilanV - Díky za další díl pro mne velmi objevného...

  • 20. 8. 2024 9:42

    MilanV

    Díky za další díl pro mne velmi objevného seriálu. Jak jsem tehdy nechtěl s PC HW na nízké úrovni nic mít a rád jsem se od něj nechal odstínit Linuxem, tak mě teď zpětně spousta věcí překvapuje. Tady např. to chybějící VBI. Rozhlédl jsem se po internetu a opravdu jsem našel, že ačkoliv teoreticky měly VGA karty podporovat VBI stejně jako EGA, tak ve skutečnosti na to u většiny klonů od různých výrobců nebyl spoleh. Jinými slovy, dovedu si představit, že hry na to rozhodně spoléhat nemohly. Jak se to tedy v praxi řešilo? I ten obyčejný double buffering? Prostě se fakt čekalo ve smyčce na CPU?

    Možná to vidím všechno moc složitě, protože jsem v zajetí zkušeností s 8bit ATARI, kde se masivně využívalo supermocných možností ANTIC, takže nevím, jak se to dělalo na jiných HW platformách.

  • 20. 8. 2024 12:19

    Pavel Tišnovský
    Zlatý podporovatel

    no Antic je oproti tomuto systému hodně vepředu. Tam nějaký split screen jde řešit klidně několikrát na jedné obrazovce, stejně jako nezávislý scrolling těchto částí. Systém, který opravdu posouval Atárko dopředu (společně s režimy 12 a 13).

    Na CPU se čekalo při double bufferingu. Při tripple bufferingu se mohla mezitím počítat další scéna (tam kde to mělo význam) a čekalo se max až potom. I proto mám raději grafické režimy se 70 Hz, kde to přece jen "odsejpalo" trošku rychleji, než u 60 Hz (320x240, 320x480).

  • 20. 8. 2024 13:19

    Ondřej Novák

    Dodnes na kartách se nastavuje, zda je nutné čekat na v-sync

    V začátcích tam byl ještě jeden problém. Pokud člověk nastavil offset, tak ten se aplikoval až při návratu paprsku. Pokud člověk nepočkal, a začal klasickým smazáním back bufferu pro nakreslení scény, tak si nemusel všimnout, že stále ještě maže front buffer. Výsledkem bylo blikání a pokud framerate renderingu byl nižší než framerate obrazovky, pak typicky problikávala černá.

    Proto i DOOM používá triple buffering, kdy front buffer je vidět, první back buffer je připraven ke zobrazení a do druhého back bufferu se maluje.

    Čekání CPU na vsync zas takový problém není. Obrazovka má 70Hz a často z bídou dosahovaly polovic na běžném PC. Já byl rád, když mi DOOM jel 20fps. Tedy většinu času se strávilo renderingem a game logic a jen krátký okamžik ve smyčce na čekání vsync. Případně při triple bufferingu se nečekalo, tedy za předpokladu, že fps hry nebylo vyšší než frekvence monitoru

    Novější karty pak uměly přepínat buffery za běhu, tedy změna byla aktivní okamžikem přepnutí a čekání nebylo třeba. Dnes tedy triple buffering moc nemá smysl, pokud tedy člověku nevadí "trhání obrazu" při rychlém pohybu, kdy k přepnutí dojde uprostřed obrazovky. Tam pak triple buffering smysl má spolu s vsyncem