kategorie: A600, Programy, Sprzęt
[#511] Re: RTG i Vampire 600 V2

@flops, post #510

Hmm jak dobrze pamiętam to na każdy pixel masz 3 lub 4 odczyty + 1 zapis a wszystko przez szynę Zorro/PCi.... szału nie będzie jeśli masz 40MB/s.
[#512] Re: RTG i Vampire 600 V2

@flops, post #510

Wiesz ja tam się nie znam ale chyba wygląda to raczej nie na problem samej przepustowości złącza tylko coś w tym stylu że samo przygotowanie transferu 1 bajta jest dużo wolniejsze niż jego przepchniecie przez szynę. A jak robisz to kilka razy na pixel to chyba masakra wychodzi.
No ale jak napisałem szybka pamięć współdzielona ( bo taki powinien być chyba poprawny termin) ma czasami swoje plusy (nie musisz kopiować danych do FB). Ma też minusy...
Ale powiedzmy że do zastosowań 2D jest chyba lepsza niż oddzielna pamięć na karcie gfx.
[#513] Re: RTG i Vampire 600 V2

@pisklak, post #512

Do FB to zawsze musisz kopiować, albo operować bezpośrednio na nim, a skoro znajduje się on w tych samych kościach co RAM, to nie ma żadnego tłumienia, dostęp ten sam co do pamięci RAM.
[#514] Re: RTG i Vampire 600 V2

@pisklak, post #512

Chodzi u mnie w 6FPS. Wolniej niż moja plasma na 68030 (a ona jest mega wolna i na OCS ;-p). Nie wiem co tam jest zrobione, ale jakaś masakra. W weekend jak znajdę czas, to postaram się napisać to samo na AGA w asm, bo cały czas nie mam opanowanego otwierania i obsługi RTG w C na Ami ;-p
[#515] Re: RTG i Vampire 600 V2

@flops, post #514

jesli chodzi o to co jest wielkim atutem vampire jak widac po prezentacji hollywood wipes to przepustowosc zlacza do rtg. na amidze to bylo powazne ucho igielne, jakies 7-10 mbs no max 15 moze z cv64, t moc procesora po prostu nic juz nie dawala, chocby i ppc. to byl slide show. a na vampire dziala to plynnie. nie wiem czy efekt ognia jest szczegolnie dobrym przylkadem by to demonstrowac, ale moze chodzi o cos jeszcze innego.
[#516] Re: RTG i Vampire 600 V2

@flops, post #514

Dlaczego nie skorzystasz z kodu flypa ? Dodaj jakąś allokacje pamięci fast i tam wszystko licz, a później tylko kopiuj do FB i po kłopocie. Kod do RTG masz już zrobiony przez Flypa.
A jeśli chodzi o "szybkośś szyny RTG" hmm.... jak masz pamięć współdzieloną to jest ona w zasadzie tak szybka jak Twój fastram. Właśnie dlatego flype może dzialać bezpośrednio na FB bez obawy prędkośc kodu. Jak uruchomisz flypowego ognika na FPGArcade/Mist to będziesz miał to samo = będzie działało szybciej niż te 3 FPS pomimo wolniejszego proca.
[#517] Re: RTG i Vampire 600 V2

@pisklak, post #516

Nie grzebie w czyichś kodach, ale tutaj postaram się zrobić wyjątek, na szybko zmodyfikować sam Fire.asm, żeby pobierał dane w długich słowach to jedno. Widzę że nie ma double bufferu, ale fajnie że w ogóle jest wywołanie ekranu z poziomu asma (przyda się do napisania kodu otwierania ekranu do przykładów na githuba). Na razie więcej nie mogę popatrzeć, ale pewnie pixele są czytane bezpośrednio z buforu ramki, trzeba przerzucić do fast. Jak będę miał dostęp w weekend do Amigi to popatrzę więcej. Muszę zacząć od stawiania środowiska, bo nie mam vbcc/vasm (a tego najbardziej nie lubię w programowaniu :-/).
P.S.
Akurat przez to że fire jest prosty, to pisałem ten efekt do prostego interka (ale nie dam rady dokończyć do końca miesiąca wszystkiego).

Ostatnia aktualizacja: 09.03.2016 11:44:48 przez flops
[#518] Re: RTG i Vampire 600 V2

@flops, post #517

ten kod pobiera dane z pamięci karty graficznej? no to grubo ...
mogliby dodać jeszcze delaye() jak nie wykryje wampira :)
[#519] Re: RTG i Vampire 600 V2

@michal_zukowski, post #518

Można na to przymknąć odrobinę oko, skoro ten pan się dopiero uczy. Przy takim samym dostępie do pamięci RTG jak do RAMu, nie grało to dla niego różnicy (no ale łatwo takim faktem zmanipulować niedoinformowanych, tak jak w przypadku urządzeń oszczędzających energię wpinanych w gniazdko).

Ostatnia aktualizacja: 09.03.2016 12:22:32 przez sanjyuubi
[#520] Re: RTG i Vampire 600 V2

@sanjyuubi, post #519

Można na to przymknąć odrobinę oko,


Nie mozna, bo pan Flype nie doczytal manuala. Uzywa LockBitMapTagList zeby pobrac adres bufora ramki w pamieci graficznej, po czym uzywa UnLockBitMap, a adresu FB uzywa dopiero potem. Tym czasem manual wyraznie mowi:


LBMI_BASEADDRESS (ULONG *) - points to a longword which contains the
                                     bitmap base address. THIS ADDRESS IS ONLY
                                     VALID INSIDE OF THE LOCK/UNLOCKBITMAP
                                     CALL!!!!!!!!!
[#521] Re: RTG i Vampire 600 V2

@mschulz, post #520

No to jest błąd programistyczny (a ja pisałem o czytaniu danych z pamięci graficznej zamiast FB w FASTRAMie), ale czy w takim przypadku nie powinno to demo działać w ogóle?
[#522] Re: RTG i Vampire 600 V2

@sanjyuubi, post #521

Tutaj jest tylko jeden ekran (z tego co widziałem, ale mogę się mylić), jest to FB RTG więc i tak ten adres będzie cały czas ok, dlatego ten przykład działa. Błąd jest, ale najważniejsze że działa. Jak już jest bezpośrednie zapisywanie do pamięci frame buffera (bez pośrednictwa funkcji systemowych), to powinno się wycisnąć dość sporo z przerzucania całego ekranu na raz, zamiast robienia pojedynczych odczytów zapisów wielkości bajta do pamięci karty. Ale zobaczymy jak to będzie działać w praktyce.
Na Amidze trzeb te wszystkie rzeczy przemyśleć, żeby było wydajnie, a jak ilustruje ten przykład, dzięki szybkim dostępom do pamięci, na Vampirze nie trzeba się już tak tym przejmować. W przyszłości może być problem ze starszymi maszynami, jak ktoś będzie pisał z myślą o Vamipre i nie testował na innych kartach.

Ostatnia aktualizacja: 09.03.2016 13:13:38 przez flops
[#523] Re: RTG i Vampire 600 V2

@flops, post #522

Ja akurat wielkiego problemu nie widzę. Wszystkie poprawnie działające programy korzystające z funkcji systemowych będą działały poprawnie na Vampirce - a że będą robiły niepotrzebny w większości przemiał pamięci to już inna sprawa. Myślę zresztą że detekcja Vampira i dostosowanie ewentualne pewnych kawałków kodu do pracy bezpośrednio na FB nie powinna być trudna. A dla wszystkich co się tak naśmiewają z "błędu" flypa... powiedzcie mi proszę czy na Vampirce bezpośrednie korzystanie z pamięci FB jest najszybszą czy najwolniejszą metodą ? Jak już mówiłem kod był pisany z myślą o Vampirce i nigdy w założeniach autora nie miał być czymś w rodzaju benchmarku. A uruchamiany był na innych konfigach po prostu z czystej ciekawości.
[#524] Re: RTG i Vampire 600 V2

@pisklak, post #523

Załóżmy, że masz rację. Dęty efekt propagandowy jest przypadkowy, Flype się uczył, sposób napisania wynikał z niewiedzy a nie z wprowadzania w błąd.
Pozostaje inna kwestia, którą zaznaczył Flops - jeżeli ludzie zaczną pisać nieuważnie, "bo vampire", to soft stanie się ospały na tyle, że odpalanie na najpopularniejszych 020/030 na małych Amigach zacznie się mijać z celem. Konsekwencje tego znamy przecież z innych platform. Choć wierzę, że zdecydowana większość amigowych programistów zdaje sobie z tego sprawę, więc może problem nie będzie wielki/powszechny.
Ogólnie, amigowe podejście zawsze kojarzyło się ze słowem "lightweight". Zrobienie tego w ten sposób nie ma nic wspólnego z tym słowem, które było jednym ze słów definiujących "amigowość" czegoś. I myślę, że to jest powód, dla którego akurat to tak drażni.
[#525] Re: RTG i Vampire 600 V2

@pisklak, post #523

Ja akurat wielkiego problemu nie widzę. Wszystkie poprawnie działające programy korzystające z funkcji systemowych będą działały poprawnie na Vampirce


Mi chodzi tylko o to, ze ten program korzysta z funkcji systemowych w niewlasciwy* (a w zasadzie nielegalny) sposob. Tylko tyle i az tyle. Cybergraphics nie gwarantuje ze adres bitmapy poza LockBitMap i UnLockBitMap bedzie niezmienny. Dzialanie programu zgodne z zalozeniem autora jest dzielem przypadku (a konkretnie tego jak cgx zarzada pamiecia vram). W zadnym momencie sie tez z kodu nie nasmiewam.

* Wlasciwy sposob to np.:
- LockBitMapTagList() i pobranie adresu FB
- Rysowanie po FB wedle uznania (moze sobie nawet po jednym bajcie czytac i pisac jak chce)
- UnLockBitMap()
- I tak w kolko za kazdym razem jak trzeba wyswietlic/zaktualizowac obraz.

Ostatnia aktualizacja: 09.03.2016 16:17:07 przez mschulz

Ostatnia aktualizacja: 09.03.2016 16:18:01 przez mschulz
[#526] Re: RTG i Vampire 600 V2

@baderman, post #524

Załóżmy, że masz rację. Dęty efekt propagandowy jest przypadkowy, Flype się uczył, sposób napisania wynikał z niewiedzy a nie z wprowadzania w błąd.


Ech ile razy mam powtarzać zanim niektórzy zrozumieją - to nie była żadna propaganda a kod działa dokładnie tak jak miał działać. Gdy masz FB=fastram to to jest po prostu najlepszy sposób. Kod był pisany pod Vampira i tyle. A gdzie Ty widzisz tą propagandę ? Czy Apollo Team dał jakieś wielkie banery na EAB/AORG "Hej my mamy 250 a wy 6 FPS!" ? Wyniki które podałem były podyktowane raczej czystą ciekawością jak to może działać gdy FB jest za szyną danych Zorro/PCI niż jakimś miarodajnym testem. Jestem też pewien że po niewielkiej przeróbce kodu to nawet 030 będzie miała znacznie więcej niż te 3FPS. Podejrzewam też że wszystkie klasyczne Amigi z szyną Zorro nawet PPC nie będą oszałamiały wynikami - po prostu Zorro ma za małą przepustowość. PCI to już inna bajka ale chętnie zobaczę Wasze wyniki. I tak jestem pewien że 1 GHz PPC będzie "miażdżył" Vampira - całość będzie siedziała w L2 a PCI jest wystarczająco szybka na więcej niż 250 FPS. No ale być może starsze PPC to już dużo szybsze nie będą. Bardzo chętnie bym się o tym przekonał. Przynajmniej tyle dobrego by wynikło z tej całej "dyskusji"

Ostatnia aktualizacja: 09.03.2016 16:55:33 przez pisklak
[#527] Re: RTG i Vampire 600 V2

@pisklak, post #526

No ale być może starsze PPC to już dużo szybsze nie będą. Bardzo chętnie bym się o tym przekonał. Przynajmniej tyle dobrego by wynikło z tej całej "dyskusji"


A gdzie binarka?
[#528] Re: RTG i Vampire 600 V2

@recedent, post #527

Jeśli chodzi Ci o binarkę Flypowego ognia (kod 68k) to powinna być w archiwum razem ze źródłami. Link podawałem wcześniej. Tylko uprzedzam że to będzie wolno działało nawet na Twoim 1Ghz PPC. Po prostu potrzebna jest niewielka przeróbka kodu żeby działało "tak jak Bóg przykazał" na innych maszynach które nie mają szybkiej pamięci współdzielonej. O tym właśnie była nasza dyskusja. Myślę że taki kod dość szybko ktoś zmajstruje, choć nie sądzę żeby się komukolwiek chciało to przepisać w PPC ASMie. Ja jestem baaaaardzo początkującym lamerem-koderem i nawet nie potrafię (jeszcze) zaalokować pamięci

Ostatnia aktualizacja: 09.03.2016 20:30:12 przez pisklak
[#529] Re: RTG i Vampire 600 V2

@baderman, post #524

Załóżmy, że masz rację. Dęty efekt propagandowy jest przypadkowy, Flype się uczył, sposób napisania wynikał z niewiedzy a nie z wprowadzania w błąd.
Pozostaje inna kwestia, którą zaznaczył Flops - jeżeli ludzie zaczną pisać nieuważnie, "bo vampire", to soft stanie się ospały na tyle, że odpalanie na najpopularniejszych 020/030 na małych Amigach zacznie się mijać z celem. Konsekwencje tego znamy przecież z innych platform. Choć wierzę, że zdecydowana większość amigowych programistów zdaje sobie z tego sprawę, więc może problem nie będzie wielki/powszechny.
Ogólnie, amigowe podejście zawsze kojarzyło się ze słowem "lightweight". Zrobienie tego w ten sposób nie ma nic wspólnego z tym słowem, które było jednym ze słów definiujących "amigowość" czegoś. I myślę, że to jest powód, dla którego akurat to tak drażni.


dobrze. ten problem naprawde istnieje, widac to np w znieoptymalizowaych kodach arosa i dlatego testuje to na prostej 4000 z 060.
natomiast, czy uwazasz ze by zapobiec rozleniwieniu srodowiska i pisaniu rozwiazlego kodu nalezy sztucznie nalozyc hamulec na interfejs grafiki by nie puszczal wyzej niz 10mb/s do framebufera? to znaczy w praktyce jestes przeciwko wszelkim usprawnieniom hardwaru i wszystko powinno zaostac tak jak zawsze bylo, bo inaczej bedzie níe fair i ktos moglby nawet zaczac porownywac osiagi z jakimis starymi ppctami, ktore de fakto dane dema tez obslugiwaly w trybie stop klatka, nawet nie z wlasnej winy ale dlatego ze dostep do grafy przez zorro3 byl jak na ten czas juz niewspolmiernie wolny.

Ostatnia aktualizacja: 09.03.2016 21:36:23 przez wawrzon
[#530] Re: RTG i Vampire 600 V2

@baderman, post #524

Pozostaje inna kwestia, którą zaznaczył Flops - jeżeli ludzie zaczną pisać nieuważnie, "bo vampire", to soft stanie się ospały na tyle, że odpalanie na najpopularniejszych 020/030 na małych Amigach zacznie się mijać z celem

No to co tu napisałeś zabijało cały czas Amigę.
Wg. mnie oto właśnie chodzi.
A lepiej.... życzę sobie aby programiści pisząc soft pod Vampirka dodawali zapisek: "Vampire card required".
Jeżeli program będzie działał 20x szybciej na Vampirce a na mojej obecnej ACA 1230/56 nie będzie działał wcale, to chwała za to programistom. Tak się napędza rynek/rozwój/biznes.
Amigowe kojarzenie się do lekkiej wagi pliku i owszem miało sens w czasach 880 kb dyskietek.
Ale teraz kiedy Amiga posiada karty CF i dyski 40 GB spokojnie można przyjąć tendencję:
"heavyweight for Vampire ready".............

Liczę że rynek tych kart dla Amig 1200 będzie także początkiem dużych, ciężkich i szybkich programów wyłącznie dla Vampire. A kto ma chęć to sobie port zrobi na 060....
[#531] Re: RTG i Vampire 600 V2

@Voyox, post #530

[przeszlosc]
bylo kiedys cos takiego, tylko ze napis byl "ppc required", nie za dobrze sie to skonczylo :)

[terazniejszosc]
pozniej przyszedl vampir i ludzie krzyczeli, 68k rulez!!

[przyszlosc]
soft z napisem "vampire required", juz nie takie 68k rulez.. historia lubi sie powtarzac :)

efekt? jeszcze wieksze podzialy w malym amigowym srodowisku. jak jakis Twoj kolega sobie przypomni o amidze to jak mu wytlumaczysz, ze wyjeta z szafy jego amiga z 040 albo 060 jest do dupy, bo nie odpali nowego softu niby kompatybilnego z 68k? :)

Ostatnia aktualizacja: 09.03.2016 22:13:30 przez juen
[#532] Re: RTG i Vampire 600 V2

@juen, post #531

jak mu wytlumaczysz, ze wyjeta z szafy jego amiga z 040 albo 060 jest do dupy, bo nie odpali nowego softu niby kompatybilnego z 68k?

Wtedy powiem że dzisiejszy pecet też nie tak od razu odpali Warcrafta 2 i Settlers 2.
Bo trzeba emulator odpalić co się zowie DOSBox.
A wyjęty z szafy pecet także nie odpali dzisiejszego softu....

Dziwię się że na rzeczy normalne w świecie komputerowym amigowcy zawsze znajdą jakiś nierozwiązywalny problem....

Ja takich dylematów nie mam. PPC od samego początku był niewypałem. O ile w przypadku Power Maców można powiedzieć o dużym sukcesie. Bo oprogramowania pod PPC jest sporo i to dobrego. A jeżeli chodzi o CAD i DTP to do dziś wzorcowego (spełnia wymogi WYSIWYG).

Natomiast na Amigę chyba nic nie powstało sensownego, a może się mylę?

Vampire sięgnie po dobrą tradycję. Jeżeli zachowa dobrą zgodność z 68k to amigowe hity zaczną działać z przyzwoitą szybkością. Nie jeden "raytracer" będzie chwalił..... OK



Ostatnia aktualizacja: 09.03.2016 22:40:01 przez Voyox
[#533] Re: RTG i Vampire 600 V2

@Voyox, post #532

Ech bardzo dawno mineły czasy raytracowania na Amidze. No i niestety Vampire tego nie zmieni.
Chociaż kto wie może jakis ASIC... i byłoby całkiem przyzwoicie (razem z FPU i Vectorem).
Ale generalnie Vampirka powinna dać jakiś tam impuls świeżości w zamulonym amiswiecie.
I właśnie na to chyba wszyscy mają nadzieję. Na powiew swieżości. Nowe dema bo użytków/gierc (poza portami) to raczej wysypu nie będzie (obym się mylił). Kto wie - pożyjemy zobaczymy.
W każdym razie potencjał jest aby nasze Amigi stały się troszkę lepsze dzięki Vampirce. Oby to nie zostało zmarnowane...
[#534] Re: RTG i Vampire 600 V2

@pisklak, post #533

Tego czego oczekuję od Vampire, to możliwości pisania gier w C na poziomie hitów z Arcade (np. Metal Slug 3, Demon Front, King of Fighters 2002), teoretycznie powinien dać radę, ale czy ktoś pokaże że da?
[#535] Re: RTG i Vampire 600 V2

@sanjyuubi, post #534

Wiesz myślę że jak masz ponad 300Mb/s trasnferu do FB to to co sobie założyłeś jest jak najbardziej osiągalne
I mam naprawdę szczerą nadzieję że ktoś jednak pokaże że się da !
[#536] Re: RTG i Vampire 600 V2

@pisklak, post #535

300MB/s do FB to nie ma, odczyt 360MB/s musisz podzielić na dwa, bo to jest kopiowanie a nie zapis, zresztą to są wartości chwilowe, bo z prędkością 360MB/s do pamięci to możemy sobie zapisać tylko stan rejestrów procesora jeśli program jest już w cache, w innym przypadku mamy przeplot odczytu instrukcji, odczytu danej, zapisu danej.

Zastanawiam się jak Gunnar rozwiązał kwestię zapisu, zapisywanie pojedynczych danych do SD-RAMu jest powolne (tak samo odczyt), ta pamięć rozwija skrzydła dopiero przy transferach burst, przy odczycie takę serię odczytów zapewnia cache, który czyta wszystko w nadmiarze, a co z zapisem, przecież nadmiarowe dane do zapisu nie pojawią się znikąd, cache działa w trybie copyback?
[#537] Re: RTG i Vampire 600 V2

@pisklak, post #223

Widze, ze Flype optymalizuje kod Riva:
mpr_YUV422_loopy ; CLK PIPE
move.w (a2)+,d2 ; 1 0
move.b (a3)+,d5 ; 2 0
lsl.l #8,d2 ; 2 1
move.w (-2,a2,d1.w),d3 ; 3 0
swap d5 ; 3 1
lsl.l #8,d3 ; 4 0
move.b (a4)+,d5 ; 4 1
lsr.w #8,d2 ; 5 0
lsr.w #8,d3 ; 5 1
lsl.l #8,d2 ; 6 0
lsl.l #8,d3 ; 6 1
or.l d5,d2 ; 7 0
or.l d5,d3 ; 7 1
move.l d2,(a1)+ ; 8 1
move.l d3,(-4,a1,d7.w) ; 9 0
subq.l #1,d6 ; 9 1
bne.b mpr_YUV422_loopy ; 10 0

Jesli robi wersje na Apollo, i Apollo robi kopiowanie w 1 cyklu to nie ma sie co bawic wystarczy uzyc 8 razy move.b i procedura bedzie o 1 cykl szybsza.
A jakby ja calkiem przerobic na odczyt longworda zamiast worda, to przy uzyciu move.l (do odczytu) oraz movep.l (do zapisu) i addq.l #8, to powinna byc ze 2 cykle szybsza. Dlatego tez pisalem Gunnarowi, ze movep jest przydatna komenda, jak chcial sie jej pozbyc.

Ostatnia aktualizacja: 11.03.2016 17:26:18 przez Don_Adan
[#538] Re: RTG i Vampire 600 V2

@Don_Adan, post #537

Tymczasem Vampire 500 powoli się rozwija.
[#539] Re: RTG i Vampire 600 V2

@Sir_Lucas, post #538

Piękne glitche na ekranie.... w każdym razie dawać mi to !
[#540] Re: RTG i Vampire 600 V2

@twardy, post #539

Adoom puszczony przez Saga i HDMI, niby w 640x480, coś robię źle czy tak ma być?



Ostatnia aktualizacja: 13.03.2016 12:35:11 przez Fest3r
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem