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.
- Zorientowany na wydajność CPU, ułatwienie Compute
- Wydana wersja "stabilna", publicznie dostępna
- 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
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.