AMD opublikowało dokumentację silnika 3D/Compute w kartach graficznych

25
834
AMD
AMD

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:

ŹRÓDŁOdeveloper.amd.com
Poprzedni artykułnVidia udostępnia dokumentację: GK104 disable underflow reporting
Następny artykułFESCo ogłasza utworzenie Product Working Groups i Fedora Rings Working Groups
Michał Olber
Interesuję się głównie sprzętem i działaniem jego pod systemami GNU/Linux. Testuję różne dystrybucje i robię recenzje. Interesuję się działaniem sprzętu pod Linuksem, dzięki czemu wiem, jaki zestaw komputerowy wybierać :)

25 KOMENTARZE

    • 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.

    • 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-

    • 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).

    • 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."

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj