[#31] Re: PiStorm and Warp3D

@markusg, post #30

Uwaga: Nie powinno się nazywać Driver (tak, wiem, że to łatwa pomyłka, więc nic się nie stało Wiem, co miałeś na myśli i dziękuję za życzenia).

O co w zasadzie chodzi: To monolityczna biblioteka, która nie bazuje na NICZYM z Amigakit poza API. A reimplementacja API *nie jest nielegalna* w UE.

Mamy plany, jak sobie z tym poradzić, więc nie martw się o projekt. Ale jednocześnie – dziękujemy za życzenia i (emocjonalne) wsparcie. To naprawdę bardzo cenne. Jeśli zostaniesz zaatakowany, to fakt, że użytkownicy Amigi (i deweloperzy, tacy jak Ty) doceniają to, co robimy, to CZYSTE ZŁOTO.
[#32] Re: PiStorm and Warp3D

@MagicSN, post #31

Ponieważ w tym projekcie panowała cisza, przynajmniej na polskim forum, chcę przedstawić Wam jego zarys (który w innych miejscach wyjaśniłem już po niemiecku i angielsku – ale wiem, że tutaj wiele osób mówi tylko po polsku, więc sensowne jest wyjaśnienie po polsku).

- Kilka tygodni temu inicjalizacja sprzętu (która przez długi czas stanowiła przeszkodę) została w końcu ROZWIĄZANA. Wiązało się to z takimi rzeczami, że mieliśmy tylko dokumentację Pi3, a Pi4 robi pewne rzeczy zupełnie inaczej (na przykład, jeśli adresy pamięci są adresami fizycznymi lub logicznymi, Videocore IV i Videocore VI robią to na odwrót – IV to adres Pi3, VI to adres Pi4/CM4).
- Potem Dennisowi udało się narysować wielokąty cieniowane płaskimi kolorami.
- A w tym tygodniu w końcu udało mu się wykonać pełne teksturowanie. Zamieściłem zdjęcia w różnych miejscach (strona projektu, Facebook, PiStorm Discord).
- Obecnie pracujemy nad pozostałymi błędami w teksturowaniu (od wczoraj tekstury mniejsze niż 256x256 w końcu działają, wcześniej występował błąd w konwerterze podczas konwersji do formatu wewnętrznego).
- Teraz planujemy popracować nad perspektywą, aby „następnym krokiem” był w pełni obrotowy, teksturowany sześcian.
- Następnie zostaną dodane kolejne funkcje 3D, takie jak blending, oświetlenie itp.

Jeśli chodzi o kwestię „legalności” – jak wspomniałem, NIE używamy żadnego kodu Warp3D. Ponowna implementacja API jest w pełni legalna w UE. Nie wiemy, czy ich komentarze naprawdę miały na myśli „pozew” (ja tak to odczytuję), czy po prostu mieli na myśli: „Bylibyśmy bardzo smutni, gdybyście to opublikowali, a wy jesteście draniami, jeśli to opublikujecie” (z tym drugim mogę się pogodzić – w przeszłości nazywano mnie gorszymi rzeczami ^^). Jeśli chodzi o pozwy, problem polega na tym, że nawet jeśli macie rację, istnieje ryzyko finansowe.

Rozważamy kilka sposobów, aby uniknąć tego ryzyka. Żelazne jest to, że PiStorm 3D (w jakiejkolwiek formie się pojawi) będzie *OpenSource*. Właściwie nie mamy innej możliwości. Kilku darczyńców przekazało darowizny na takich warunkach. Niektórzy, którzy wnieśli swój wkład, również wnieśli go na takich warunkach. A część kodu z „innych źródeł” (bezpośrednio do kodu Pi Metal) jest moim zdaniem nieoptymalna dla rozwoju zamkniętego kodu (nie jestem pewien, czy w ogóle działa poza OpenSource – i pomimo kłótni między mną a fanami GPL, zawsze chcę w 100% przestrzegać moich zobowiązań licencyjnych).

Myślę, że wszyscy zaangażowani chcą pomóc Amidze (i tak, dotyczy to również AmigaKit/AEON). Myślę, że powinien istnieć sposób, aby coś zrobić, co pomoże Amidze. Właściwie właśnie dlatego w ogóle zajmuję się projektem PiStorm 3D. Nie zarabiam na tym ŻADNYCH pieniędzy (wszystkie zebrane pieniądze trafiają do Dennisa, ja nic z tego nie biorę - właściwie rozmawiałem z dwoma darczyńcami o możliwości wykorzystania części tych dwóch - i tylko części tych dwóch, może z dodaniem do tego jakiejś mojej własnej kasy - na KUPIENIE praw do Warp3D 68k (tylko 68k, tylko klasyczny Warp3D, nie sprzedadzą Nova ^^), ale teraz wątpię, żeby AEON chciał sprzedać - ale gdyby chcieli, gdybym mógł KUPIĆ te rzeczy - z pewnością udostępniłbym cały zestaw Driver Development Kit jako OpenSource. Wierzę, że gdyby DDK było OpenSource, mogłyby pojawić się inne rzeczy. Niezależnie od tego, PiStorm 3D pozostałby monolityczną biblioteką bez żadnego związku z Warp3D. A gdyby ze mną rozmawiali – ja *bym* z nimi rozmawiał. Do tej pory żadna z moich prób do nich nie została odebrana (no cóż, dostałem odpowiedź od Trevora, ale on nie podejmuje decyzji w AEON, ponieważ ja (zrozumiałem). Dennis również nie został skontaktowany.

Ale to można zmienić, prawda? Jak powiedziałem, nie jestem wrogiem ich firmy (chociaż mogą tak myśleć, może też z mojej winy, jestem emocjonalny i jeśli ktoś mnie czasami atakuje, to „odwdzięczam się tym samym” [Miotacz ognia włączony] ^^. Ale nie mam nic przeciwko nim i na pewno bym z nimi porozmawiał. Po prostu – zamknięte źródło nie wchodzi w grę.


4.074
Ponieważ w tym projekcie panowała cisza, przynajmniej na polskim forum, chcę przedstawić Wam jego zarys (który w innych miejscach wyjaśniłem już po niemiecku i angielsku – ale wiem, że tutaj wiele osób mówi tylko po polsku, więc sensowne jest wyjaśnienie po polsku).

- Kilka tygodni temu inicjalizacja sprzętu (która przez długi czas stanowiła przeszkodę) została w końcu ROZWIĄZANA. Wiązało się to z takimi rzeczami, że mieliśmy tylko dokumentację Pi3, a Pi4 robi pewne rzeczy zupełnie inaczej (na przykład, jeśli adresy pamięci są adresami fizycznymi lub logicznymi, Videocore IV i Videocore VI robią to na odwrót – IV to adres Pi3, VI to adres Pi4/CM4).
- Potem Dennisowi udało się narysować wielokąty cieniowane płaskimi kolorami.
- A w tym tygodniu w końcu udało mu się wykonać pełne teksturowanie. Zamieściłem zdjęcia w różnych miejscach (strona projektu, Facebook, PiStorm Discord).
- Obecnie pracujemy nad pozostałymi błędami w teksturowaniu (od wczoraj tekstury mniejsze niż 256x256 w końcu działają, wcześniej występował błąd w konwerterze podczas konwersji do formatu wewnętrznego).
- Teraz planujemy popracować nad perspektywą, aby „następnym krokiem” był w pełni obrotowy, teksturowany sześcian.
- Następnie zostaną dodane kolejne funkcje 3D, takie jak blending, oświetlenie itp.

Jeśli chodzi o kwestię „legalności” – jak wspomniałem, NIE używamy żadnego kodu Warp3D. Ponowna implementacja API jest w pełni legalna w UE. Nie wiemy, czy ich komentarze naprawdę miały na myśli „pozew” (ja tak to odczytuję), czy po prostu mieli na myśli: „Bylibyśmy bardzo smutni, gdybyście to opublikowali, a wy jesteście draniami, jeśli to opublikujecie” (z tym drugim mogę się pogodzić – w przeszłości nazywano mnie gorszymi rzeczami ^^). Jeśli chodzi o pozwy, problem polega na tym, że nawet jeśli macie rację, istnieje ryzyko finansowe.

Rozważamy kilka sposobów, aby uniknąć tego ryzyka. Żelazne jest to, że PiStorm 3D (w jakiejkolwiek formie się pojawi) będzie *OpenSource*. Właściwie nie mamy innej możliwości. Kilku darczyńców przekazało darowizny na takich warunkach. Niektórzy, którzy wnieśli swój wkład, również wnieśli go na takich warunkach. A część kodu z „innych źródeł” (bezpośrednio do kodu Pi Metal) jest moim zdaniem nieoptymalna dla rozwoju zamkniętego kodu (nie jestem pewien, czy w ogóle działa poza OpenSource – i pomimo kłótni między mną a fanami GPL, zawsze chcę w 100% przestrzegać moich zobowiązań licencyjnych).

Myślę, że wszyscy zaangażowani chcą pomóc Amidze (i tak, dotyczy to również AmigaKit/AEON). Myślę, że powinien istnieć sposób, aby coś zrobić, co pomoże Amidze. Właściwie właśnie dlatego w ogóle zajmuję się projektem PiStorm 3D. Nie zarabiam na tym ŻADNYCH pieniędzy (wszystkie zebrane pieniądze trafiają w całości do Dennisa, ja nic z tego nie biorę – właściwie rozmawiałem z dwoma darczyńcami o możliwości wykorzystania części tych dwóch – i tylko części tych dwóch, może z dodaniem do tego części moich własnych pieniędzy – na KUPIENIE praw do Warp3D 68k (tylko 68k, tylko klasyczny Warp3D, nie sprzedadzą Novy ^^), ale teraz wątpię, żeby AEON chciał sprzedać – ale gdyby chcieli, gdybym mógł KUPIĆ te rzeczy – zdecydowanie udostępniłbym cały zestaw Driver Development Kit. Wierzę, że gdyby DDK było otwarte, pojawiłyby się inne rzeczy. Niezależnie od tego, PiStorm 3D pozostałby monolityczną biblioteką bez żadnego związku z Warp3D.

A gdyby ze mną rozmawiali – ja *bym* z nimi rozmawiał. Do tej pory żadna z moich prób do nich nie została odebrana (no cóż, dostałem odpowiedź od Trevora, ale on nie podejmuje decyzji w AEON, ponieważ ja Zrozumiałem). Dennis też się nie skontaktował.

Ale to można zmienić, prawda? Jak powiedziałem, nie jestem wrogiem ich firmy (choć mogą tak myśleć, może też z mojej winy, jestem emocjonalny i jeśli ktoś mnie czasami atakuje, to „odwdzięczam się tym samym” [Miotacz ognia włączony] ^^. Ale nie mam nic przeciwko nim i na pewno bym z nimi porozmawiał. Po prostu – ClosedSource nie wchodzi w grę.

Jeśli chcą, żeby „To wina Steffena, że ​​się ze sobą spieramy” – w porządku (chociaż tak naprawdę nie sądzę ^^). Mogę to zaakceptować. Chcę tylko, żeby ta biblioteka OpenSource pojawiła się, żeby 3DHW dotarło do PiStorm. Wszystko inne jest nieistotne.

Ostatnia aktualizacja: 10.04.2026 13:45:22 przez MagicSN

Ostatnia aktualizacja: 10.04.2026 13:47:55 przez MagicSN
11
[#33] Re: PiStorm and Warp3D

@MagicSN, post #32

Trzymam kciuki OK
2
[#34] Re: PiStorm and Warp3D

@MagicSN, post #32

WINE robi własne implementacje wielu komponentów Windowsa i nikt ich za to nie skroił bo i nie ma o co, doprawdy czasem czuję, że Amigaświatek niektórym źle działa na mózgownicę.
2
[#35] Re: PiStorm and Warp3D

@MagicSN, post #32

Robicię swiętną robotę. Nie da się zastrzec API, ale tak jak piszesz pozwac można każdego o wszytsko prawnicy z tego żyją a ty tracisz czas i pieniądze. Nie bez powodu mówi się że 12 prawników na dnie morza to dobry początek :)
3
[#36] Re: PiStorm and Warp3D

@Sventevith, post #35

A jest tego jeszcze więcej. Videocore VI to sprzęt TBDR 3D. Cały pozostały sprzęt Warp3D to sprzęt IMR (zupełnie inny potok renderowania, „binning” słów kluczowych itp.). Zatem twierdzenia Matthew Leamana o „potrzebie rozwoju w czystym pomieszczeniu” są bezsensowne. Nie ma jeszcze sterownika Warp3D dla sprzętu TBDR (nawet dla Warp3D Nova). Sterowniki dla sprzętu IMR (takiego jak Permedia 2, Voodoo czy Radeon HD/RX) *zasadniczo* różnią się od sterowników dla sprzętu TBDR. Zupełnie inny potok renderowania itp.
1
[#37] Re: PiStorm and Warp3D

@MagicSN, post #36

Wszystkie kwestie związane z tą dyskusją zostały już rozwiązane. Jak być może wiecie, do tej pory PiStorm 3D stanowiło jedynie kod łączony statycznie i – po długiej dyskusji – nie było powiązane z żadnym konkretnym API 3D. W międzyczasie wybrano docelowe API 3D. Nie będzie to Warp3D, lecz MiniGL. Mowa o specjalnej wersji MiniGL, w której bezpośrednio zaimplementowano obsługę układu Pi/VideoCore VI. Nie wykorzystuje się żadnych innych API 3D (ani Warp3D, ani Wazp3D, ani innych – wszystko opiera się wyłącznie na MiniGL), ani zewnętrznie, ani wewnętrznie. Liczy się tylko MiniGL.

Oznacza to, że spór został zażegnany (choć decyzja ta wynikała głównie z przesłanek technicznych, a nie prawnych).

Wadą tego rozwiązania jest brak obsługi oprogramowania korzystającego bezpośrednio z Warp3D; autorom aplikacji chcącym wspierać PiStorm 3D zaleca się stosowanie MiniGL zamiast API Warp3D. Konieczne jest również ponowne skompilowanie i zalinkowanie oprogramowania z tą „specjalną” wersją MiniGL obsługującą PiStorm 3D.

Warto jednak zauważyć, że większość gier 3D na system AmigaOS i tak korzysta z MiniGL.

Osobiście zajmę się przygotowaniem aktualizacji dla wybranych gier, aby dostosować je do tej nowej wersji MiniGL – mowa o tytułach takich jak Quake 1, Quake 2 i Heretic 2; rozważę również możliwość stworzenia wersji gry Serious Sam. Przyjrzę się także projektom Xash3D oraz Half-Life.
4
[#38] Re: PiStorm and Warp3D

@MagicSN, post #37

A jaka jest szansa na inne gry wymagające 3D takie jak Wipeout 2097, który w połączeniu z EMUPPC powinnien być bardzo grywalny? Tak samo jak dema - czy Planet Potion czy dema Encore też korzystają z MiniGL?
Oczywiście EMUPPC jest tutaj tak samo kluczowe jak MiniGL.
[#39] Re: PiStorm and Warp3D

@Sir_Lucas, post #38

Jeśli chodzi o wymagające gry 3D, zamierzam przystosować wersje 68k gier Quake 2 i Heretic 2 (a być może także Quake 1) do obsługi przez PiStorm 3D. W grę wchodzą również Xash3D (Half-Life) oraz – ewentualnie – Serious Sam (ten ostatni może wymagać pewnych rozszerzeń w obrębie MiniGL, stąd ta niepewność). W przypadku Wipeout istnieje już reimplementacja wykorzystująca GL, stworzona na PC (lub OS4), więc wystarczyłoby ją jedynie przeportować.
Co do dem – nie mam pojęcia, jakich rozwiązań one używają (nie wiedziałem nawet, że na AmigaOS istnieją dema wykorzystujące akcelerację sprzętową 3D). Jeśli jednak mają działać na PiStorm, muszą korzystać z MiniGL.
Warto zauważyć, że po pojawieniu się EmuPPC konieczna będzie rekompilacja PiStorm 3D pod architekturę PPC, ponieważ obecnie obsługuje ono wyłącznie procesory z rodziny 68k.

Ostatnia aktualizacja: 27.07.2026 13:54:58 przez MagicSN
[#40] Re: PiStorm and Warp3D

@MagicSN, post #39

Uwaga: Arczi przygotował port tych pecetowych źródeł na Amigę. Wykorzystuje w tym celu W3D, ale wydaje mi się, że dostosowanie tego do MiniGL nie powinno być trudne, skoro oryginalny kod na PC już korzysta z GL.
[#41] Re: PiStorm and Warp3D

@MagicSN, post #39

Dzięki za wyjaśnienie.
Tak, jest sporo dem pod WarpOS obsługujących sprzętowe 3D.
Tutaj lista:
Dema z HW 3D
[#42] Re: PiStorm and Warp3D

@Sir_Lucas, post #41

Aby uruchomić cokolwiek z tego na PiStorm, trzeba by to najpierw i tak przeportować na architekturę 68k (EmuPPC jeszcze tego nie umożliwia). Skoro i tak konieczne byłyby zmiany, można by to przy okazji przeportować na GL.
Z myślą o przyszłej kompatybilności zaleca się stosowanie MiniGL zamiast bezpośredniego wykorzystania Warp3D. Warto zauważyć, że Warp3D to „stare” API 3D, będące w istocie jedynie rasteryzatorem; OpenGL (oraz jego szybsze odmiany, jak MiniGL) oferuje znacznie większe możliwości, wykraczające poza samą rasteryzację. Zapewnia też lepszą kompatybilność z różnymi platformami (kod źródłowy wymaga jedynie minimalnych modyfikacji, by działać na OS3 i OS4 z MiniGL oraz na OS4 z GL4GLES – można tu nawet dodać MorphOS z TinyGL). Istnieje też szansa na przyszłe wzbogacenie MiniGL o obsługę shaderów (co w przypadku Warp3D było niemożliwe ze względu na przestarzałą konstrukcję tego API). Muszę przyznać, że zaskoczyło mnie samo stosowanie bezpośredniego Warp3D. W zasadzie wszystkie moje projekty wykorzystujące akcelerację sprzętową 3D opierają się na GL. Jeśli ktoś koniecznie chce używać Warp3D, musiałby napisać własną warstwę pośredniczącą (wrapper) typu MiniGL->Warp3D, choć nie wiem, jak zapatrywałoby się na to AEON. Wybór MiniGL to w tym przypadku bezpieczniejsze rozwiązanie.
2
[#43] Re: PiStorm and Warp3D

@MagicSN, post #42

A jak miałby się AEON na to zapatrywać. A jak się MS zapatruje na DXVK? Ma coś w ogóle do powiedzenia w tej sprawie? Nie. Wybór minigl uważam za trafny chociaż jeśli pojawi się potrzeba na W3D to myślę, że ktoś prędzej czy później zrobi taki wrapper. Aczkolwiek nie wiem czy jest większy sens takich działań. Co do "drivera dla PPC"... czy tak to działało na klasyku? Czy WarpOS obsługiwał osobne drivery dla PPC obok 68k? Może źle pamiętam, ale wydaje mi się, że to nie do końca tak wyglądało.
[#44] Re: PiStorm and Warp3D

@abcdef, post #43

Jak zapatruje się na to Aeon? Jeśli chodzi o wybór MiniGL, ich zdanie nie ma tu znaczenia. PiStorm 3D nie zawiera żadnych elementów Warp3D – ani plików nagłówkowych, ani samej implementacji.

Przypuszczam, że liczyli na to, iż ostatecznie porzucimy model open source i uczynimy projekt zamkniętym, na wzór oficjalnego sterownika Warp3D. Tak się jednak nie stało; nie zrezygnowaliśmy z otwartego kodu w przypadku PiStorm 3D.

Uważam, że w tej kwestii zarówno my, jak i AEON możemy się zgodzić, że takie rozwiązanie jest w porządku.
Rynek Amigi jest na tyle mały, że nie ma już miejsca na kolejne spory. A MiniGL świetnie sprawdza się jako baza dla PiStorm 3D.

A PiStorm wreszcie zyskuje akcelerację 3D.

Przypuszczam też, że masz rację – w przyszłości ktoś zapewne stworzy wrapper tłumaczący wywołania MiniGL na Warp3D. Nie będę to ja – z oczywistych względów.
[#45] Re: PiStorm and Warp3D

@MagicSN, post #44

Czy minigl będzie amigowym libem #?.library czy statyczną biblioteką? Czy zamierzacie zrobić jakąś abstrakcje w stylu sterowników do poszczególnych kart, lub chociaż jakiegoś api by pisać takie sterowniki (Radeon 9100 czeka na własne sterowniki 3d, a tak naprawdę z AI dałoby się go względnie szybko oprogramować).
1
[#46] Re: PiStorm and Warp3D

@michal_zukowski, post #45

Radeon 9100 czeka na własne sterowniki 3d, a tak naprawdę z AI dałoby się go względnie szybko oprogramować


Czy na pewno? Obecne sterowniki do firebirda są na bazie tych elboxowych. Jest sterownik od Thora ale również zamknięty i pod jego OpenPCI (ale jego OpenPCI nie gada z sonnet.library). Nie znam się na kartach aż tak, ale czy tam nie trzeba by było napisać czegoś wiecej. Z tego co AI mi podpowiada to jest tak:

CP means Command Processor.
It is a small processor inside the Radeon GPU that:
- Reads command packets from a ring buffer or command aperture.
- Decodes register and drawing commands.
- Starts 2D/3D operations.
- Updates read pointers and synchronization state.
Without CP, software can still write hardware registers directly, as the current 2D checkpoint does. For practical Warp3D rendering, CP submission is preferable because it can process buffered state changes, vertices, textures, and draw commands.
On the target:
CP_CSQ_CNTL = 0x02010080
mode = PRIDIS_INDDIS
This means both primary and indirect CP command paths are disabled. The CP must therefore be safely loaded with R200 firmware, given a command ring, configured, synchronized, and later restored before it can be used.
[#47] Re: PiStorm and Warp3D

@MagicSN, post #42

Myślę, że napisanie takiego wrappera MiniGL->Warp3D, nie powinno być problemem.
[#48] Re: PiStorm and Warp3D

@MagicSN, post #42

stosowanie MiniGL zamiast bezpośredniego wykorzystania Warp3D

Widziałem ze w virtiogpu dla Amigaos4 @derfsss poszedł w drugą stronę.
Na żródłach @derfsss da się bez problem (po modyfiakcjach kodu) też "aktywać" BIF_BLITTER ( w trybie stabilnym ) oraz tryb pełnej kompozycji z virtio-gpu-gl,. Tryb pełnej kompozycjia gdy sterowik działa jako anynchroniczny aktualnie sprawia duże problemy.
Odnośnie AEON i AOS4 - chyba szybciej wszystko co dotyczy virtio wcześniej zorbią pasjonaci niż ta "firemka".
Już jest duzo virtio dla AOS4: Virtio9PFS-handler, VirtualSCSIDevice, VirtioSound (w tracke prac) i natywne sterowniki pod QEMU nvme.
Wracając do temtu - ta wersja minigl będzie gdzieś dostępna publicznie ?

Ostatnia aktualizacja: 28.07.2026 00:02:19 przez markusg
[#49] Re: PiStorm and Warp3D

@Mirq, post #46

nie ma sterownikow 3d dla Radeona pod 68k
[#50] Re: PiStorm and Warp3D

@michal_zukowski, post #49

To ja wiem, pytam czy tutaj rzeczywiście poszłoby tak łatwo.
[#51] Re: PiStorm and Warp3D

@Mirq, post #50

Dodam parę słów od siebie, mam nadzieję, że nie będzie mocno offtopowo.

Jakoś na początku czerwca zacząłem trochę rozpracowywać bibliotekę Warp3d. Mówiąc wprost - bez żenady zacząłem ją disasemblować przy pomocy narzędzia IRA z dodanymi moimi modyfikacjami a następnie już częściowo opisane procedury z opisanymi strukturami danych wrzucałem do ChatGPT. Wyniki były mocno obiecujące. W kilka nocy udało mi się rozpracować jak wygląda inicjalizacja kontekstu i podstawowe pisanie do rejestrów Voodoo 3 i ułożyłem sobie w głowie jak to mniej więcej działa. Oczywiście rozpracowałem pewnie z 5-10% minimalnej funkcjonalności tej biblioteki ale dziwię się, że przez tyle lat nikt nie stworzył otwartej biblioteki 3D. Dobry programista bardziej biegły w assemblerze najprawdopodobniej zrozumiałby jak to działa nawet bez żadnego AI czyli można było to zrobić już dawno temu :).

Miałem w planach wrócić do tematu pod koniec wakacji ale prawdopodobnie jakiekolwiek prace na bazie Warp3D nie mają już sensu skoro MagicSN tworzy coś dużo bardziej rozbudowanego i w dodatku otwartego.

A teraz bardziej w temacie: rzeczywiście wydaje się, że jest ogromna różnica pomiędzy obsługą Voodoo3 i Radeona. W Voodoo wszystko odbywa się poprzez pisane do rejestrów, natomiast w Radeonie jest ten cały command processor do którego wysyła się dane za pomocą ring buffera. ChatGPT za każdym razem wysyła mnie do źródeł linuksowych gdzie to wszystko już zostało zaimplementowane i można z tego skorzystać. Ale przecież na AmigaOS 4 ktoś taki sterownik napisał więc się da.

A teraz jeszcze jedna rzecz która mnie zupełnie zaskoczyła. Okazuje się, że taki Voodoo 3 w ogóle nie przetwarza przestrzeni 3D. On umie tylko rysować na ekranie wielokąty i nakładać na nie tekstury. Dlatego taki Quake 1 działa tak biednie nawet na 68060@100MHz. Bo wszystkie te macierzowe przekształcenia musi i tak zrobić procesor. Ja zawsze myślałem, że to robi akcelerator :).
[#52] Re: PiStorm and Warp3D

@michal_zukowski, post #45

Nie tworzę systemu sterowników. Ta specjalna wersja MiniGL będzie przeznaczona wyłącznie dla układu VideoCore VI (czyli dla układu graficznego w PiStorm CM4 / PiStorm 4). Być może w przyszłości powstanie też wersja dla VideoCore IV – zobaczymy – ale na razie skupiam się tylko na VideoCore VI.

Będzie to biblioteka linkowana; plik binarny trafi do serwisu Aminet, a kod źródłowy na GitHub. Projekt będzie miał charakter open source.
3
[#53] Re: PiStorm and Warp3D

@Artur Jarosik, post #47

Tak, to powinno pójść gładko. Choć biorąc pod uwagę ich reakcję w sprawie PiStorm 3D, trudno oczywiście przewidzieć, jakie jest teraz stanowisko AEON. Z drugiej strony, fakt, że wszyscy przesiadają się na MiniGL, pewnie też nie jest im na rękę ^^ Ale to logiczna konsekwencja obecnej sytuacji.
[#54] Re: PiStorm and Warp3D

@markusg, post #48

Tak jak wspomniano w drugiej odpowiedzi – projekt będzie dostępny jako open source na GitHubie. Być może kod źródłowy trafi też na Aminet, ale GitHub wydaje mi się lepszym rozwiązaniem, biorąc pod uwagę przyszłe aktualizacje i tym podobne kwestie. Na razie jest jednak za wcześnie, by cokolwiek uruchomić. Niemniej, patrząc na obecne tempo prac, spodziewam się, że projekt pojawi się „kiedyś w tym roku”.
1
[#55] Re: PiStorm and Warp3D

@michal_zukowski, post #49

W rzeczywistości takie istnieją. Wiążą się z nimi jednak poważne kwestie dotyczące licencji, praw autorskich i własności intelektualnej. Tymczasem ja i Dennis pracujemy tutaj nad sterownikami dla układu Videocore VI – a nie dla Radeona. Videocore VI to układ graficzny 3D stosowany w PiStorm CM4 oraz PiStorm 4 (w PiStorm 3 wykorzystywany jest Videocore IV).
[#56] Re: PiStorm and Warp3D

@bfgmatik, post #51

Voodoo 3 to stary układ 3D. Pełni on jedynie funkcję rasteryzatora; tak stare układy nie zajmują się transformacjami ani podobnymi operacjami. W przypadku VideoCore VI (czy Radeona) sytuacja wygląda inaczej. Oczywiście API Warp3D nie obsługuje transformacji – to interfejs przeznaczony wyłącznie do rasteryzacji. Aby uwzględnić transformacje, potrzebne jest rozwiązanie typu GL (np. MiniGL) lub nowsze, niskopoziomowe API, takie jak Vulkan czy Warp3D Nova (które z oryginalnym Warp3D dzieli w zasadzie tylko nazwę), ewentualnie GLES2 itp.
Przy okazji: nie jestem autorem tego rozwiązania; zorganizowałem jedynie zbiórkę funduszy (i zajmę się dostosowaniem niektórych gier do współpracy z nowym MiniGL). Właściwą bibliotekę 3D dla PiStorm tworzy Dennis. Projekt ten jest jednocześnie bardziej i mniej złożony. Bardziej złożony, ponieważ mamy do czynienia z znacznie nowocześniejszym układem 3D (nie jest to tylko implementacja rasteryzatora). To w zasadzie pierwszy przypadek tworzenia obsługi sprzętowej 3D w systemie AmigaOS dla układu typu TBDR; nawet układy stosowane w AmigaOS4 działają w trybie *immediate mode*, a nie TBDR. Z drugiej strony projekt jest mniej złożony, gdyż nie stanowi uniwersalnego systemu sterowników, lecz jest dedykowany konkretnemu układowi sprzętowemu, obecnemu we wszystkich systemach PiStorm4/PiStormCM4.
1
[#57] Re: PiStorm and Warp3D

@bfgmatik, post #51

Jest akceleratorem bo nakłada tekstury i rasteryzuje... odpowiada też za filtrowanie i m.in. efekty mgły czy przezroczystości. W czasach układów 2D za to wszystko odpowiadał procesor więc generalnie akcelerator rzeczywiście w znaczącym stopniu go odciążał. I tak z wąskich gardeł jakie wcześniej były (wydajność CPU, przepustowość szyny ISA i na samym końcu generalnie dopiero wydajność układu graficznego) stworzyła się bardziej skomplikowana sieć powiązań. Ale i tak by wyciągnąć max z akceleratora trzeba było mieć szybkie CPU. Potem nastała dopiero era hardware T&L z premierą GeForce256 (choć sam standard niemal natychmiast został wyparty przez potok z shaderami, tutaj głównie myślę o vertex shader czyli dorzucenie pewnej programowalności potoku) gdzie minusem była... wydajność silnika geometrii w GPU. Tak, gdyby nie wymieniać tego GeForce256 tylko dokładać absurdalnie szybkie CPU np. Athlon XP 2800+ to ten układ by się zadławił uderzając w sufit swoich 15mln wielokątów na sekundę. A Kyro 2 by z soft t&l na takim athlonie wyciągnęło i 20mln ;) Ale... Już GeForce 3 by zmiażdżył w przedbiegach możliwości CPU i tak generalnie było, jest i pewnie będzie. Kolejne generacje GPU oprócz typowych rzeczy (jak pixel fillrate czy wydajność teksturowania) zwiększały też to co można w trakcie potoku zmieniać (programowalnie, najpierw pixel i vertex shadery, potem się to nieco pozmieniało i doszły kolejne zw. z geometrią i teselacją, a potem doszło wspieranie ogólnych obliczeń i raytracing). I jesteśmy w czasach gdzie każdy nosi w kieszeni superkomputer z końca lat 90 i gra na nim w głupie gierki albo swipuje laski z tindera ;)
3
[#58] Re: PiStorm and Warp3D

@abcdef, post #34

WINE robi własne implementacje wielu komponentów Windowsa i nikt ich za to nie skroił

Ba, są tacy co zarabiają na Wine.
[#59] Re: PiStorm and Warp3D

@MagicSN, post #52

Nie tworzę systemu sterowników. Ta specjalna wersja MiniGL będzie przeznaczona wyłącznie dla układu VideoCore VI (czyli dla układu graficznego w PiStorm CM4 / PiStorm 4). Być może w przyszłości powstanie też wersja dla VideoCore IV – zobaczymy – ale na razie skupiam się tylko na VideoCore VI.


Mi jako użytkownikowi klasycznej Amigi marzy się otwarta alternatywa dla Warp3D. Podejrzewam, że jeżeli opublikujecie źródła Waszego projektu to ktoś prędzej czy później będzie próbował dostosować go do pracy z mostkami PCI i tanimi kartami typu Radeon. No chyba, że specyfika projektu jest taka, że nie da się tego wykorzystać w ten sposób albo łatwiej będzie napisać od nowa.

Pytanie do wszystkich: jeżeli Warp3D jest napisany modułowo, ma oddzielne sterowniki sprzętu i oddzielnie resztę biblioteki to czy napisanie W3D_Radeon.library zamiast np. W3D_AvengerBE.library łamie prawa autorskie? W końcu implementujemy tylko API Warp3D na potrzeby oddzielnej biblioteki dla Radeona. Ktoś na forum wspominał, że implementacja API w prawie EU nie jest zabroniona.
2
[#60] Re: PiStorm and Warp3D

@bfgmatik, post #59

1. W3D_Radeon.library jako sterownik dla oryginalnego Warp3D
Taki moduł implementowałby prywatny interfejs sterowników W3DHW_*, a nie publiczne API używane przez gry. Do tego potrzebny był Warp3D DDK (Driver development kit). Publiczny SDK jest przeznaczony dla autorów aplikacji i nie opisuje m.in. funkcji eksportowanych przez sterownik, tablic callbacków, inicjalizacji i negocjacji wersji, struktur wymienianych z GFX driverem, zarządzania teksturami i powierzchniami ani synchronizacji sprzętu. DDK nie był publicznie dostępny i mógł podlegać osobnej licencji lub NDA.
2. Własny zamiennik Warp3D.library
Tutaj DDK nie jest potrzebny, ponieważ implementuje się bezpośrednio publiczne API opisane w SDK. Problemem jest jednak zapis znajdujący się w pliku LEGAL dostarczonym z Warp3D:
The Warp3D API ... may not be re-implemented without the express written permission of Hyperion Entertainment.

Ino z AI czytającego dostępne pliki Warpowe. Ta druga droga to coś co widzimy w przypadku Wazpa3D, ale nie wiaodmo czy autor sie z kimś kontaktował.
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