Ż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

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

albo przynajmniej na dhs.nu

4

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

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.

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.

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