Alex Deucher z AMD, opublikował dokumentację silnika 3D/Compute w kartach graficznych. Specyfikacja rejestrów i poradniki programowania obejmują modele o kodowych nazwach: Evergreen, Northern Islands, Southern Islands, Sea Islands. Jest to tym samym uzupełnienie obecnie dostępnej specyfikacji technicznej tych samych chipsetów oraz istniejącej publicznej dokumentacji chipów R300 – R700.
Poniżej znaleźć można odnośniki do dokumentacji w PDF:
- AMD Evergreen 3D/Compute Register Reference Guide
- AMD Northern Islands 3D/Compute Register Reference Guide
- AMD Evergreen/Northern Islands Acceleration Programming Guide
- AMD Southern Islands 3D/Compute Register Reference Guide
- AMD Sea Islands 3D/Compute Register Reference Guide
- AMD Southern Islands/Sea Islands Acceleration Programming Guide
AMD opublikowało dokumentację silnika 3D/Compute w kartach graficznych | OSWorld.pl http://t.co/tSwn71swau via @OSWorldpl
Grzegorz Olejniczak liked this on Facebook.
Michał Olber liked this on Facebook.
Brawo AMD :)
Cicho, cicho, bo Cię O_o zaatakuje;)
BTW, człowiek odpowiedzialny za OpenGL w AMD, teraz bawi się Voodoo, a to dzięki dokumentacji opublikowanej przez 3dfx 14 lat temu. http://www.openglsuperbible.com/2013/10/21/voodoo… Firma dawno nie istnieje, sprzęt dalej może być używany.
Świetny link. Dzięki!
Przeczytałem i dowiedziałem się prawdy. Voodoo to był akcelerator rysowania trójkątów 2d wypełnianych teksturami ;-)
Tym samym są dzisiejsze karty ;p. W shaderach wierzchołków obliczasz pozycje wierzchołków trójkąta w przestrzeni 2d ekranu (mnożysz przez macierz widoku * macierz projekcji), następuje rasteryzacja (zamiana wektorów trójkąta na rastry) i w shaderach fragmentów wypełniasz te trójkąty 2D.
Przy czym wygląda na to, że Voodoo (podobnie inne karty tamtej ery) zajmowało tylko ostatnimi etapami renderingu, tymi (pomijając prymitywy 3D) którymi obecnie zajmuje się Fragment Shader:
"The Pixelfx chip interfaces with the host computer, the linear frame buffer, and the display monitor. It
implements basic 3D primitives including Gouraud shading, alpha blending, depth buffering, dithering, and
fog. The TMU (located on the Texelfx chip) implements true-perspective, detail, and projected texture
mapping, bilinear and trilinear filtering, and level-of-detail mipmapping." http://alasir.com/software/glide/
Transformacjami wierzchołków musiał zajmować się CPU.
Zdawałem sobie sprawę, że nie ma tam T&L, ani innych nowoczesnych wynalazków. Ale zaskoczyło mnie, że to aż tak prymitywne.
Z drugiej strony pewnie implementowali to, co zajmowało silnikom 3D najwięcej czasu procesora i polepszało jakość. Kolejne karty implementowały kolejne wąskie gardła.
T&L (czy tam TCL w nomenklaturze OpenGL) raczej wielką zmianą nie było. IIRC, hardware obsługujące ówczesne T&L nie było programowalne. Za początek nowoczesnej ery pewnie można liczyć GeForce 3/Radeona 8500 i wprowadzenie programowalnych Vertex i Fragment (albo jak inni wolą Pixel) shaderów.
Jak sam zauważyłeś, to przyspieszali to co było konieczne. Ludzie bez akceleratora grali w 320×200, bez filtrowania i bez wielu zasobożernych efektów. Wystarczyło wsadzić układ mający zaledwie milion tranzystorów, taktowany 50 Mhz i nieprogramowalny a z zaszytymi efektami na stałe, by cieszyć się rozdzielczością 640×480 i większą liczbą klatek (Voodoo 1 miało prędkość wypełniania 45 Mpix/s).
Jeśli grałeś w starego Serious Sama, to tam była "świątynia efektów", gdzie pokazywano wszelkie efekty zaszyte w ówczesnych układach graficznych na modelu "czajnika z Utah";)
Jak się patrzy na tak niską warstwę, to OpenGL/D3D wydaje się bardziej przeszkodą niż pożytkiem. Szczególnie w tamtych czasach. Bo to standard inżynierski implementujący po swojemu całkiem dużą część kodu, której nie można było uprościć/zoptymalizować.
Jakiś rok temu zrobiłem sobie retro-maszynę do grania w stare gry. Niestety dawno temu pozbyłem się Voodoo na rzecz Riva-y TNT2 (mniej syfiła na Linuksie kiedyś). Okazało się, że w dużej części starych gier, ta karta zwyczajnie zamula w porównaniu z 3dfx (w tytułach gdzie do wyboru było glade/d3d/ogl).
Oczywiście wina może leżeć też po stronie słabego procesora (P200MMX), ale przychylam się bardziej ku temu, że wszystko robiące biblioteki nie miały zbyt dużych optymalizacji w porównaniu z czystymi rozwiązaniami na glade.
P200 nie nakarmi TNT2, nawet z TNT będzie słabo. Co do retro maszyn. Z sąsiadem pozbieraliśmy ostatnio stare graty i złożyliśmy sprzęt z części wyłącznie XX-wiecznych. Nawet myszka musiała być z kulką i monitor 15 cali CRT.
Voodoo 3 3000 sprzęgliśmy z Celeronem 700, którego jeszcze podkręciłem do 872. UT99 na Glide w 1024×768 i maksymalnych detalach nie chciał spaść poniżej 40 kl./s.
Tu chyba nie ma czym karmić. Odpalam te same gry.
Ba – nie tak dawno (kilka lat temu) Intel GMA już nawet w epoce shaderów robił je na CPU (softwareowo)… później robił to też z geometry shaders. Obecnie w nowych już tego się nie robi (no poza kilkoma przykładami na rynku mobilnym ;p)
Graham Sellers fajne rzeczy robi (nawet ponoć zrobił z tej książki do której podałeś link dosyć dobrą pozycję – kiedy czytałem jej wcześniejsze wersje kilkanaście lat temu to był to poziom wręcz żałosny (ale do autorów dołączył kilka lat temu i ponoć wiele się zmieniło)).
Co do kompatybilności z OpenGL sterowników AMD (fajne zestawienie robi były pracownik AMD i Imagination Technologies (PowerVR), współautor OpenGL Insights…) to obecnie już jest bardzo dobrze (w stosunku do tego co było kilka lat temu) i pod Windowsem sterowniki ma gorsze niż Intel (do 4.1) i Nvidia (wszystkie wersje)… jednak już jest blisko czołówki i sterowniki ma zdecydowanie lepsze niż Apple pod MacOS czy Mesa. http://www.g-truc.net/doc/OpenGL%20status%202013-…
Ciekawe. Sterowniki Intela i Nvidii są z sierpnia, a AMD z kwietnia, chociaż były 13.6beta2, 13.8beta2…
Od kwietnia nie robił tych zestawień i to było pierwsze od tamtego czasu (głównie ze względu na OpenGL 4.4 i pierwsze sterowniki z nim czyli bety od Nvidii) – prawdopodobnie nie miał czasu, a na stronie AMD powiedziało mu, że najnowsza stabilna wersja to 13.4 (wcześniej wydawał statusy co miesiąc zaraz jak pojawiały się nowe stabilne wersje od AMD, ale AMD zmieniła politykę sterowników).
Nie sprawdził najnowszych sterowników, bo nie ma karty AMD.
Tak się składa, że ma kilka od AMD w tym Cape Verde (kilka dni temu wrzucił swoje testy Multi Draw Indirect z GK104, Cape Verde i HD4000).
Wtedy nie miał…
"It seems that AMD has released an OpenGL 4.3 driver but as I don't have an AMD card at the moment so I haven't tested it."
Po owocach programistów sterowników zobaczymy, czy było warto.
Krzysztof Hajd liked this on Facebook.
Ale to już było ;) Teraz tylko było o tym na blogu AMD.
Reklama dźwignią handlu…