OpenGL "AZDO" vs Metal vs Mantle vs DX12 vs OpenGL "Next"

Rok 2015 według wszelkich znaków na niebie i ziemi będzie przełomowy jeśli chodzi o hardware. Nowe architektury GPU, stacked RAM, 16/14nm i inne dziwy. A po stronie softwarowej proszę Państwa cofamy się do epoki kamienia łupanego czyli Win95!(*) Wszystko za sprawą wysypu nowych API i "nowego" spojrzenia na karmienie GPU danymi. Pierwsza część z serii to krótka prezentacja kandydatów na miano króla dżungli.

Prezentacja rywali

Werble, fanfary, pokazy pirotechniki, etc. zanim każdy z kandydatów wejdzie na ring ;)

OpenGL "AZDO"

Sygnowany marką Khronos, już dostępny standard OpenGL 4.4 + jedno dodatkowe rozszerzenie ARB, którego jedynym rywalem jest... Apple i to jak długo Apple NIE będzie chciało go zaimplementować w OSX.


  • Zorientowany na wydajność GPU
  • Wydana wersja "stabilna", publicznie dostępna
  • Dostępny na WinPC/LinPC(Catalyst/Geforce)
Metal

A w zasadzie iMetal, dzieło firmy sadowniczej. Bez zaskoczeń, za to szybciej wprowadzone na rynek niż konkurencja, a to duży plus na rynku w którym przez rok stracić można wszystko.


  1. Zorientowany na wydajność CPU, ułatwienie Compute
  2. Wydana wersja "stabilna", publicznie dostępna
  3. Dostępna na iOS
Mantle

Produkt czerwonych (ale nie komunistów). Niby jest, a go ciągle nie ma. Choć niektórzy twierdzą, że nawet w tej postaci to jest produkt udany... bo DX12 pojawi się na rynku szybciej właśnie dzięki niemu!


  • Zorientowany na wydajność CPU, ułatwienie Compute
  • Wydana wersja "beta", dostępna na zaproszenie
  • Dostępna (według zapowiedzi) na WinPC(AMD)
Direct3D 12 (DX12)

Produkt firmy której nikt nie lubi. I to jeszcze przez rok go nie uświadczymy. A jeśli wyjdzie to nie wiadomo na jakie gry. I ile będzie kosztował (bo jak ktoś kupuje Win tylko dla DX....) Ale jak się już pojawi, to z mocą lawiny. Każdy będzie się musiał dostosować.


  • Zorientowany na wydajność CPU, ułatwienie Compute
  • Prawdopodobnie wersja "beta", dostępna na zaproszenie
  • Dostępna (według zapowiedzi) na XO, WinPC, WinRT, WinP
OpenGL "Next"

Brak danych by coś sensownego o nim napisać. :D :D :D


  • Brak danych
  • Brak danych
  • Brak danych

Choć możemy poplotkować o tym, że ma zastąpić i OpenGL w wersji "PC" i w wersji mobilnej czyli OpenGL ES. I być może wyjdzie w GDC, a być może podczas SIGGRAPH. I jeszcze jest szansa że połączy on "AZDO" z DX12, tylko dla wielu platform. Spekulować moglibyśmy godzinami, ale że chciałbym porównywać konkrety (choćby te zapowiedziane, a nawet sugerowane przez twórców), a tych brak ze strony Khronos, to o OpenGL "Next" nic więcej nie napiszę.

Legenda


  • Zorientowany na wydajność GPU -- API stara się aby dane które trafiają do GPU były lekkostrawne, w odpowiednim formacie a szybsze przygotowanie danych na CPU jest tylko bonusem
  • Compute -- obliczenia na GPU takie jak: symulacja fizyki, symulacja AI ale też takie obliczenia związane z grafiką gdzie dane zaczynają i kończą w pamięci GPU lub nawet CPU
  • Zorientowany na wydajność CPU, ułatwienie Compute -- API stara się jednoznacznie określić które operacje są kosztowne, dodatkowo eliminuje miejsca w których sterownik GPU musi zgadywać, oraz miejsca w których ponownie zostają wykonane te same obliczenia. Dodatkowo przemodelowanie modelu GPU ułatwia integrację Compute
  • Catalyst -- własnościowy sterownik AMD dostępny na Win i Lin (ale nie na Androida!)
  • Geforce -- własnościowy sterownik Nvidii dostępny na Win i Lin (oraz na Androida, ale to Google decyduje które API jest dostępne)

  • WinPC, LinPC, WinRT, WinP -- Windows na PC, Linuks na PC, Windows RT, Windows Phone
  • [/list]

    I'll be back!

    Nie sądziłem, że samo opisanie w kilku słowach wszystkich API zajmie tyle powierzchni ekranu na blogu DP!

    Może było by łatwiej gdyby redakcja DP udostępniła tabelki (jak są to przepraszam i proszę o instrukcję!).

    W następnym odcinku więcej o tym co to takiego to GPU oraz na czym polega proces karmienia takiego małego (lub nie) potworka przez CPU (a więc też o tym, dlaczego DX11/OpenGL ES/OpenGL bez "AZDO" po prostu nie wyrabiają z szuflowaniem łopatami tych danych).

    (*) Wyjaśnienie o czym mowa, pojawi się w późniejszym odcinku serii ;) A teraz zapraszam do spekulacji i prac archeologicznych. :D

    PS Proszę o feedback czy użycie komentarzy do rozróżnienia sekcji poświęconych różnym API jest trafny. Czasami w tekście będzie to kilka takich sekcji, gdzie każda API robi coś inaczej, więc czytelność rozróżnienia kto/co jest dla mnie szczególnie istotna.

    PSPS Wie ktoś jak ustawić rozmiar obrazków na sztywno? Wycentrowane 1/4 nie raziło by tak w oczy.