Frontier3 - testovaci sada pro vykon, KOLO 2 (4 varianty, 3 CPU)
=================================================================

DULEZITE: tahle sada NAHRAZUJE puvodni Frontier3_Flight_Variants.zip.
Vsech 12 binarek je znovu prelozenych s novymi opravami travis deleni
(nize) - i kdyz jmena variant (v0..v3) jsou stejna jako predtim, obsah
je jiny. Nemichejte vysledky ze stare a nove sady dohromady.

Proc znovu: na FS-UAE (emulator, ne realny hardware) jsme zmerili, ze
velka cast ztraty vykonu byla v tom, jak se prekladaly DELENI operace
pro cil "68060" - kompilovalo se zpusobem, ktery nutil UPLNE KAZDE
deleni (i ty, co realne 68060 zvladne v hardwaru) branit se pres
pomalou softwarovou emulaci. Po oprave: 8.8 fps -> 14.7 fps na FS-UAE
emulaci 68060, stejna scena. Ale FS-UAE je emulator - nevime spolehlive,
jak presne odpovida realnemu casovani cipu. Proto tahle sada: chceme
REALNA cisla z realneho hardwaru, at uz FS-UAE vysledek potvrdi, nebo
ukaze neco jineho.

Co presne se zmenilo oproti puvodni sade:
  1. safe_div32 (pomocna funkce pro cele deleni) uz nedela zbytecne
     64bitove deleni - drivejsi kod castoval oba operandy na int64,
     coz GCC nedokazalo zjednodusit zpet na 32bitove (na rozdil od
     nasobeni, to GCC zjednodusit umi). Tim padem volala drazsi
     knihovni rutinu, misto primeho stroj. deleni. Tyka se VSECH
     4 variant a VSECH 3 CPU stejne.
  2. Stinovani trojuhelniku (jedna facka v kodu, ale bezi na KAZDY
     vykreslovany trojuhelnik, KAZDY snimek) delilo konstantou 3 -
     nahrazeno nasobenim predpocitanou prevracenou hodnotou (presne
     ten "vypocet s tabulkou misto primeho deleni" napad). Bezna
     ztrata presnosti nulova (jen stinovaci vypocet, ne fyzika).
  3. NEJVETSI zmena, tyka se JEN cile 68060: cast kodu (fixmath.c,
     model.c) se pro "68060" prekladala zamerne konzervativne, aby
     prekladac nemohl nikdy pouzit "dlouhe" 32bitove nasobeni/deleni
     instrukce - drivejsi predpoklad byl, ze realne 68060 tyhle
     instrukce vubec nema v hardwaru. Ukazalo se, ze to neni presne:
     68060 MA v hardwaru obycejne 32/32 deleni (jeden vysledkovy
     registr), jen slozitejsi 64/32 variantu (dva registry) resi
     softwarove. Preklad byl proto zbytecne opatrny i pro tu
     bezpecnou, rychlou variantu. Opraveno - jen pro 68060 cil, 68030
     a 68040 se v tomto bode nemeni (ty uz hardwarove deleni mely).

Spusteni (stejne jako predtim):
  - Rozbalit, vsechny soubory v jedne slozce zustanou pohromade
    (hull.model, station.model + binarky).
  - Spustit podle CPU a varianty, napr.:
    "amiga_flight_demo_v2_cache_move16_68040 station.model hull.model"
  - Bez parametru hleda DH1:station.model / DH1:hull.model.
  - Beh ukoncite klavesou Escape.

Ctyri varianty (stale stejny vyznam jako predtim, spustte VSECHNY na
kazdem stroji, kde je to mozne - lisi se jen v cache/mazani obrazovky,
NE v opravach deleni vyse, ty jsou ve vsech 4 stejne):

  v0_baseline
    Zadna cache oprava, obycejne mazani obrazovky. REFERENCNI bod.

  v1_cache_only
    Pridava zapnuti copyback cache na 68040/68060. Na 68030 by mela
    vyjit STEJNE jako v0 (68030 cache je vzdy write-through).

  v2_cache_move16
    Navic rychlejsi mazani obrazovky (MOVE16) na 68040/68060, jen
    kdyz OS vrati uz spravne zarovnany buffer, jinak bezpecny fallback.
    Vizualne by melo byt CISTE (zadne pruhy).

  v3_cache_move16_forced
    Stejne jako v2, ale adresa bufferu se NASILU zarovna. Na FS-UAE
    tohle drive zpusobilo mrizkovany vzor - zajima nas, jestli se to
    objevi i na realnem hardwaru.

Co nejvic zajima tentokrat - PROSIM PRIORITNE:
  1. Cislo FPS a rez "render=...ms" pro variantu v1_cache_only NA VSECH
     TREM CPU (68030/68040/68060), zvlast 68060 - to je to cislo, co
     porovnavame s FS-UAE namerenym 14.7 fps / render=~57ms na 20
     snimku. Vypisuje se do radku "20 frames in ... ms (X.XX fps) ...
     render=... ms" - staci poslat par radku z kazdeho CPU.
  2. Na 68030/68040 ocekavame JEN malou zmenu oproti drivejsimu pocitu
     (uz mely hardwarove deleni), hlavne chceme potvrdit, ze se nic
     NEZHORSILO.
  3. U v2 a v3: porad plati - je na obrazovce videt nejaky vzor/pruhy?
     U ktere varianty a jak vypada.
  4. Prvni radky vypisu po startu (cache enable, chunky alignment) -
     stejne jako predtim, staci zkopirovat.

Ovladani a ostatni informace: viz README.txt v puvodnim
Frontier3_Flight.zip - tady je jen to, co je NOVE.
