Temat: 2-4 bitplanowy triangle filler na blitterze

Żeby zakończyć cykl wypełnianych trójkątów :P ,na koniec 2-4 bitplanowy triangle filler. Ilość bitplanów reguluję się stałą "planes" na początku programu. Sprawdziły się przypuszczenia, że 4 bitplany na blitterze będą szybsze od tych na motoroli (ale różnica nie powala). Samo wypełnianie pojedynczych planów jest NAPRAWDĘ szybkie, szkoda że sporo czasu traci się na przygotowanie blittera do pracy. :( Żeby sprawdzić czas w ramce, naciskamy tradycyjnie Ctrl.

Post's attachments

btri4p.zip 6.11 kb, liczba pobrań: 4 (od 2015-03-05) 

Tylko zalogowani mogą pobierać załączniki.

2

Odp: 2-4 bitplanowy triangle filler na blitterze

A nie możesz tego na jakiegoś githuba wrzucać? Mnie by było łatwiej.

What can be asserted without proof can be dismissed without proof.

3

Odp: 2-4 bitplanowy triangle filler na blitterze

albo przynajmniej na dhs.nu

4

Odp: 2-4 bitplanowy triangle filler na blitterze

Fajny kod, może da się jeszcze jakoś zoptymalizować.

Miałbym jedną prośbę aby dodać "endif" w pliku ste_blit.s w MACRO "sblit        macro".
Teraz za każdym razem gdy kompiluję Twoje testy muszę robić to ręcznie :)

Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

Odp: 2-4 bitplanowy triangle filler na blitterze

Możemy spróbować kod jeszcze trochę zoptymalizować, a później można spróbować wrzucić go gdzieś dalej. ENDC - dodałem. Co ciekawe, kompilowało mi się bez zakończenia kompilacji warunkowej... Dziwne.

Odp: 2-4 bitplanowy triangle filler na blitterze

Można zamienić tablicę masek/offsetów na tablicę masek/offsetów lewą i tablicę masek/offsetów prawą. Wtedy zamiast dwóch lsl.w #3,d0 i lsl.w #3,d1 będą podwójne dodawania add.w d0,d0; add.w d0,d0 i add.w d1,d1; add.w d1,d1. To da oszczędności 12 cykli na linię wypełniającą. Jak będę miał chwilę czasu, zrobię odpowiednie zmiany.

Odp: 2-4 bitplanowy triangle filler na blitterze

Hmmm. Mam pomysł, jak uszczknąć około 10-15% czasu ramki :D (o ile oczywiście da się to zrealizować), ale wymaga to sporej zmiany w kodzie. Może kiedyś przysiądę i zrobimy najszybsze wypełnianie 4 bitplanowego trójkąta na STeku :P