Hírek | Archívum | Fórum | IRC | Amiga | AmigaOS | FAQ | RSS

 - Fórumok - Regisztráció - Keresés - Statisztika - Szabályzat - Pegasos.hu fórum
forum.amigaspirit.hu / Fejlesztés / Általános fejlesztési kérdések
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 .
Szerző Üzenet
dh1
Mr. DTP

# Elküldve: 2017. Dec. 05. 10:49


Ehh akkor nem kerdezek ra :)

Chain-Q
Divatamigás

# Elküldve: 2017. Dec. 05. 13:19 - Szerkesztve: charlie


@Mash
próbálom kerülni az instruction cache miss-eket.

Hogy sikerül egy tightloopban kilógni az ICache-ből? Nem data cache-et akartál írni?

Felmerült, hogy ha a scanline 4 chunky pixel, vagy több, akkor longwordöket írok, ha 2 pixel, akkor wordöt, nem byte-okat, mivel mindegyik move 1 clock cycle, de így meg nem hiszem, hogy beférek a cache-be.

A doubleword writeokat megcsinálja a proci storebufja neked, azzal nem kell szopni, csak nagyon hosszú scanlineoknál gyorsít valamennyit. Tudom h. PC-n ez volt a default trükk régen, hogy dwordoket írtál és a regiszterekben tekerted a biteket jobbra-balra, de ez a hatvanason általában nem segít, hacsak nem fél fél képernyőnyi polykat rajzolsz.

A fő baj az, hogy csak 8K a data cache, a képernyőterület meg ~64K vagy környéke, és a nullhatvan (és az összes cache-sel rendelkező 68k) először akkor is beolvassa a memóriaterületet a cache-be ha írni akarsz rá. Ergó egy képernyőtörlés kb. egy cacheflush, még akkor is, ha csak írsz. (Kivéve a MOVE16 utasítás negyvenesen és hatvanason, az direktben ír ill. másol a cache megkerülésével, de azt meg elég macerás használni.)

Egy próbát akarok még tenni azzal, hogy felhasználom az FPU regisztereit is, hogy a lehető legkevesebbet kelljen a stackhez/memóriához nyúlni, hátha ez is gyorsít valamennyit.

Az a baj, hogy még a fentiek ellenére is, általában nem a scanline írás lassú, mert ott többségében már a cache-ben lévő byteokra írsz, mert egy cacheline 16 byte, amit egyszerre olvas be a proci, ha cache miss van, hanem a textúra olvasása, mivel ott legtöbbször átlósan olvasod a memóriát, ergó szinte mindig cache missre futsz. Ez ellen lehet küzdeni valamennyire pl. a textúra kisebb tile-okba rendezésével, de sajnos csodák nincsenek.

Persze beolvashatnál egy adag textúrát az FPU regiszterekbe, de ha ha tudnád mi a következő textúra-terület ami kelleni fog, akkor elég lenne prefetchelni az adatot a cache-be és nem kell az FPU-val szopni.

Mash
Tag
# Elküldve: 2017. Dec. 05. 16:36


Kösz, Charlie a választ! Murphy-vel beszélgettünk és akkor is felmerült a tiled rendering. Gondolkodom még ezen, meg játszok kicsit a kóddal, aztán előbb-utóbb már tényleg csak kinő belőle egy demo. ;)
Köszönöm, még egyszer!

AliveMOon
Tag

# Elküldve: 2017. Dec. 07. 04:13 - Szerkesztve: alivemoon


A LINUX include könyvtárában mit keres a zorro.h és zorro_ids.h :)

Mint a menzán a finom főzelék, ha kihűl semmi nem különbözteti meg a disznók moslékától :)

Chain-Q
Divatamigás

# Elküldve: 2017. Dec. 13. 22:15


@AliveMOon:
Ha a Linux fut Amigan (marpedig fut), akkor hogy nevezzek el a buszrendszerevel kapcsolatos fileokat? batman.h vagy mi? :)

<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 .
forum.amigaspirit.hu / Fejlesztés / Általános fejlesztési kérdések
 
 

Powered by online community software miniBB™ © 2001-2018