[#31] Re: cybergraphics.library

@Minniat, post #27

To w takim razie po co używasz tej która nie występuje w oryginalnym API AmigaOS?
Poza tym dodaj flagę BMF_MINPLANES do wywołania AllocBitMap() i pochwal się rezultatem.

[#32] Re: cybergraphics.library

@MinisterQ, post #31

BMF_MINPLANES może ustawiać tylko system.

[#33] Re: cybergraphics.library

@selur, post #30

Witam

Dzięki za odpowiedź. Ja myślałem, że pisząc bonus miałeś na myśli jakąś dodatkową gre jako dodatek :).

Mogę się mylić ale coś mi się kołacze, że miałeś też jakąś grę robić na klasyka tylko nie pamiętam na czym stanęło i jaka to miała być gra.

Pozdrawiam
asman

[#34] Re: cybergraphics.library

@Minniat, post #25

Mam dwie uwagi do twojego kodu. Jedna dosc istotna, druga troche mniej.

1. Alokujac bitmape ktora ma byc wyswietlona, uzywaj flagi BMF_DISPLAYABLE. Jest to dosyc istotne, szczegolnie w przypadku kart graficznych: bitmapa zaalokowana bez tej flagi moze istniec tylko w pamieci RAM; bitmapa zaalokowana z ta flaga ma spore szanse wyladowac bezsposrednio w pamieci karty graficznej.

2. Ciesze sie, ze zaczales korzystac z timer.device. Nie rozumiem tylko, dlaczego korzystasz z pary SendIO()/WaitIO. Zamiast tego, wystarczy jedno zwykle DoIO().

[#35] Re: cybergraphics.library

@Minniat, post #32

Masz racje - chodziło mi o BMF_DISPLAYABLE. Miałem na myśli jedno, napisałem drugie. Ale w kontekście tego co napisał mschulz to i tak już po ptokach.

[#36] Re: cybergraphics.library

@Minniat, post #25

ogolnie to jestes smieszny i glupio uparty, ale zadalem sobie trud i przerobilem twoj program aby byl normalbym testem predkosci a nie marna imitacja.

"BltBitMap() i BltMaskBitMapRastPort() pod CGX i OS4.0 są strasznie wolne, szczególnie ta druga funkcja. Czy jest jakaś alternatywa dla tych funkcji??? BltBitMap() pod AGA jest wystarczająco szybka (używam m.in. w Robbo)."

w twoim tescie na amidze karta voodoo i procesorem 060 program testowy (robiacy DOKLADNIE to samo co twoj) jest w stanie narysowac 100000 (sto tysiecy) klatek w nieco ponad 31 sekund. daje to 0.000319 sekundy na jedna klatke i 3127 klatek na sekunde. jezeli nie potrafisz z tego zrobic plynnej animacji to po prostu zajmij sie czyms innym. ewentualnie mozesz poczytac wszystkie watki w ktorych komentowalem twoje poczynania (np o poprawnej realizacji multibufferingu).

moja wersja programu znajduje sie pod adresem: http://wozniak-m.w.interia.pl/display .

przetestowane pod MorphOS-em oraz os3.9 z voodoo/p96.



Ostatnia modyfikacja: 23.01.2009 20:00:16
[#37] Re: cybergraphics.library

@kiero, post #36

aha, zeby osoby ktore tak bronia minniata a krytykuja krytykujacych mialy pojecia to ten pan wypisuje, to napisze, ze ten test rysuje 16 razy na ramke obraz o wielkosci 16x16 pikseli. wnioski wyciagnijcie sami.

[#38] Re: cybergraphics.library

@asman, post #33

Dodatkowa gra to tez nie jest zly pomysl, np. do docelowej gry molgby dodac np. demowersje Robbo jako bonus :)

Ano mialem zamiar zebrac grupe do napisania klonu Legionu, ale wyszlo jak wyszlo i nic z tego nie wyszlo... , zreszta ludziska tez chyba zbytnio nie wzieli tego na powaznie i olali sprawe, ale nic sie nie stalo... miedzyczasie ktos zrobil konwersje starego Legionu na PC uzywajac SDL'a i obiecal poprawic bledy (linka nie pamietam ale mozna znalezc w internecie gdzies na forum www.legionpc.fora.pl czy cos takiego).
[#39] Re: cybergraphics.library

@kiero, post #36

A mógłbyś zrobić 1 000 000 (milion) powtórzeń? Bo jakieś głupoty mi wyświetla (fps:~42 000).
[#40] Re: cybergraphics.library

@APC74, post #39

jaki pecet?

pod morphosem mam nieco ponad 14k. mysle, ze dzisiejszy pecet spokojnie pobije ten wynik.



Ostatnia modyfikacja: 23.01.2009 21:29:28
[#41] Re: cybergraphics.library

@kiero, post #40

No... Dosyć nowy, ale żeby ponad 10x szybciej liczyło pod WinUAE niż 060(?) to normalnie w pale się mi nie mieści.

EDIT: Aha. No i wyszło, że jestem misiem o bardzo małym rozumku... ;)
Co by się mniej więcej zgadzało nawet... :D Po prostu jakoś tak sobie wyobrażałem, że 060 + GFX to ho ho. Echem... To ja już może sobie pójdę i nie będę więcej przeszkadzał. :)



Ostatnia modyfikacja: 23.01.2009 21:37:57
[#42] Re: cybergraphics.library

@APC74, post #41

to nie jest poprawnie napisany benchmark. narzuty sa tam gdzie byc nie powinny. ogolnie trudno oceniac wydajnosc emulacji. np na moim g4/1GHz 060 jest ~10 razy szybsze dla kodu produkowanego przez kompilator a w tym tescie mam wynik jedynie 5 razy lepszy. ale nie o to tutaj chodzilo wiec nie bede marnowal wiecej czasu.

[#43] Re: cybergraphics.library

@kiero, post #42

U mnie wyskoczylo na G3/600
time:57.142000 seconds. 100000 iterations. frametime:0.000571 seconds. fps:1750.026250

Czy to nie za malo?
[#44] Re: cybergraphics.library

@Norbert, post #43

za malo, ale szczerze mowiac nie chce mi sie wnikac dlaczego.

[#45] Re: cybergraphics.library

@Norbert, post #43

U mnie na G4/1000 jest
time:7.417000 seconds. 100000 iterations. frametime:0.000074 seconds. fps:13482.540111

Czy wynik testu bardzo zależy od karty graficznej?
[#46] Re: cybergraphics.library

@wali7, post #45

zalezy od wszystkiego po trochu

[#47] Re: cybergraphics.library

@kiero, post #46

to ile minniat miał ?
50, 60 ?

[#48] Re: cybergraphics.library

@kiero, post #36

Kiero, a czy w Twoim benchmarku używasz graphics.library czy cybergraphics.library? Mój kod przykładowy to był program, który animował piłeczki posiadające prędkość i przyspieszenie. BltMaskBitMapRastPort(), który jest chyba źle napisany bo bardzo wolny daje ze 20 kul 16x16 w zadowalającej prędkości, a BltBitMapRastPort() daje dość sporo, bo z nawet 80 kul w rozsądnej prędkości, ale nie może być użyty z obiektami, które się poruszają na tle.

Wyczytałem, że BVision ma prędkość 800MB przesyłu danych na sekundę (dla porównania Blitter ma 2MB na sekundę). Ale nie sprawdza się to w praktyce z użyciem tych funkcji systemowych (przynajmniej w moim przypadku).

P.S. Twój double-buffering z użyciem AllocScreenBuffer()/ChangeScreenBuffer() działa bardzo dobrze.



Ostatnia modyfikacja: 24.01.2009 16:19:21
[#49] Re: cybergraphics.library

@Minniat, post #48

Minniat napisał(a):

> Wyczytałem, że BVision ma prędkość 800MB przesyłu danych
> na sekundę (dla porównania Blitter ma 2MB na sekundę).

Gdzie takich głupot naczytałeś się? Jak BVizja osiągnie 25MB/s to będzie dobrze...

[#50] Re: cybergraphics.library

@Marek Szyprowski, post #49

[#51] Re: cybergraphics.library

@Minniat, post #48

Wyczytałem, że BVision ma prędkość 800MB przesyłu danych na sekundę

Ciekawe gdzie to wyczytałeś...
Realna przepustowość łącza BVision z resztą świata to 7-14MB/s. Nie w tym tkwi siła tej karty (jeśli już mówić o jakiejkolwiek sile w tym przypadku).
Jeśli dane graficzne znajdują się w pamięci karty, to blitowanie jest bardzo szybkie. Nawet to z BltMaskBitMapRastPort() w roli głównej. To jest to, co Ci się tu próbuje uświadomić.

[#52] Re: cybergraphics.library

@Minniat, post #50

To jest teoretyczna, i maksymalna prędkość pomiędzy chipsetem graficznym a pamięcią graficzną karty. I nie ma nic wspólnego z rzeczywistością i transferami z/do pamięci karty za pomocą CPU.

[#53] Re: cybergraphics.library

@MinisterQ, post #51

OK, zgodzę się. Oto cytat z możliwości BVision:

Some of the hardware features include 80 million textured pixels/sec. Hardware functions for Z-Buffering, Gouraud Shading, Fogging, Blending and Anti-Aliasing.

Czyli 80 milionów pikseli na sekundę.

[#54] Re: cybergraphics.library

@MinisterQ, post #51

Jeśli dane graficzne znajdują się w pamięci karty, to blitowanie jest bardzo szybkie.

Jak sprawić, by dane źródłowe znalazły się w tej pamięci. Użyć BMF_DISPLAYABLE?

[#55] Re: cybergraphics.library

@Minniat, post #53

I?
Jakaś głębsza konkluzja może?

[#56] Re: cybergraphics.library

@Minniat, post #54

Tak.

[#57] Re: cybergraphics.library

@Minniat, post #54

Minniat napisał(a):

> Jak sprawić, by dane źródłowe znalazły się w tej pamięci. Użyć
> BMF_DISPLAYABLE?

A przeczytales w ogole to co ja do ciebie napisalem?

[#58] Re: cybergraphics.library

@szuler, post #34

Korzystam z WaitIO() tylko w kodzie przykładowym. W realnym programie wywoływane są różne funkcje między kolejnymi klatkami zaś tylko sama animacja podlega synchronizacji. DoIO() nie spełnia takich wymagań.



Ostatnia modyfikacja: 24.01.2009 16:37:53
[#59] Re: cybergraphics.library

@szuler, post #57

Tak, przeczytałem. Myślałem tylko, że BMF_DISPLAYABLE dotyczy tylko bitmapy ekranu, a nie danych źródłowych.



Ostatnia modyfikacja: 24.01.2009 16:43:24
[#60] Re: cybergraphics.library

@MinisterQ, post #55

Konkluzja jest taka, że skoro BVision jest wymiernie szybkie to powinno wystarczyć do napisania porządnej gry wymagającej wielu obiektów animowanych.



Ostatnia modyfikacja: 24.01.2009 16:41:08
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