Otwarty standard grafiki w grach zdobył sprzęt Apple, wkrótce zrobi to z Windows 10
Vulkan, otwarta, wieloplatformowa i niskopoziomowa bibliotekagrafiki 3D, dzisiaj podbiła świat. Może to za mocne słowa wsytuacji, gdy branża gier wciąż wyznaje wierność technologiomMicrosoftu, ale strategicznego wymiaru sukcesu twórców Vulkana,grupy branżowej Khronos, nie sposób przeoczyć. Wydana właśniedarmowa i otwarta wersja biblioteki MoltenVK 1.0 wraz z kompletemnarzędzi programistycznych, oznacza, że Vulkan jest już (prawie)wszędzie: oprócz Windowsa, Linuksa i Androida, teraz także namacOS-ie i iOS-ie.
26.02.2018 | aktual.: 27.02.2018 07:56
Apple nigdy wcześniej nie było specjalnie zaangażowane wkwestię interfejsów grafiki, od lat korzystając ze standardowych,niezbyt zoptymalizowanych na swoje platformy bibliotek OpenGL iOpenGL ES. Gdy AMD pokazało swoje przełomowe Mantle, z któregowyłonił się współcześnie nam znany Vulkan, a Microsoftzaangażował ogromne środki w zbudowanie DirectX 12, firma zCupertino uznała, że lepiej jej będzie z własnym rozwiązaniem.Usprawiedliwiała to rosnąca rola iPhone’a i iPada jako urządzeńdo zaawansowanych graficznie gier mobilnych – i tak w 2014 rokubyliśmy świadkami debiutu niskopoziomowej biblioteki Metal naiOS-ie i procesorach Apple A7, a rok później na Makach, wraz zwydaniem systemu OS X El Capitan.
Podobnie jak rozwiązania konkurencyjne, także i Metal zapewniałznacznie wyższą wydajność niż jego wysokopoziomowy poprzednik –pozwalają na to wstępnie wyliczone shadery, bezpośredniasynchronizacja i współdzielony obszar pamięcy między CPU i GPU,efektywna wielowątkowość, pozwalająca każdemu wątkowi procesoragłównego wysyłać polecenia do GPU, oraz znacznie niższy narzutsterownika. Niestety Metal pod żadnym względem nie był z nimikompatybilny, co zmusiło twórców gier i silników do gier domozolnego implementowana kolejnego graficznego API w swoichproduktach. Znaczenie iOS-a na rynku sprawiło jednak, że nie mieliwyboru. Według Apple w zeszłym roku niemal 150 tysięcy aplikacji(w większości gier) rysowało grafikę przez Metal.
Metal jednak nigdy nie wyjdzie poza świat Apple, natomiast wieludeweloperów bardzo by chciało, by najpopularniejszamultiplatformowa biblioteka Vulkan weszła do tego świata. Pierwsząprzymiarką była komercyjna biblioteka MoltenVK, która w czasierzeczywistym dokonuje translacji komend Vulkana na Metal.
Teraz, dzięki wykupieniu tej biblioteki przez Valve,wykorzystaniu stworzonego przez firmę LunarG nowego SDK Vulkana dlasystemu macOS, oraz zastosowaniu otwartego skrośnego kompilatorashaderów SPIRV-Cross możliwe stało się wprowadzenie Vulkana naplatformy Apple. I to wszystko ze świetnymi rezultatami – Valvesię chwali, że w grze Dota 2 na Maku jest w stanie dostarczyć onawet 50% większą wydajność od wersji gry na OpenGL. Operatorsklepu Steam podkreśla, że zlikwidowanie wszelkich ograniczeńpatentowych i kosztów (całość została wydana na licencji Apache2.0) pozwoli każdemu swobodnie wykorzystywać i rozwijać tętechnologię.
Posunięcie to jest częścią szerszej inicjatywy, która odzeszłego roku nosi nazwę Vulkan Portability Initative. GrupaKhronos wymarzyła sobie uniwersalny interfejs dla wszystkichplatform, w którym podzbiór poleceń Vulkana może działać jakowarstwa pośrednicząca, bezpośrednio odwzorowująca polecenia naDirectX12 i Metal. Idea jest prosta: tworzymy gry i silniki giertylko na ten podzbiór Vulkana, a potem bez przeszkód wdrażamy jena Vulkanie, DirectX 12 i Metalu.
Obecnie opensource’owy MoltenVK wspiera niemal wszystkie fukcjeVulkana, pozostało może pięć funkcji, które zostaną wprowadzonew kolejnych miesiącach. Apple tu nie ma nic do powiedzenia,współpraca firmy z Cupertino jest zbyteczna. To prawda, mamy doczynienia z nakładką na Metal, ale nakładką całkowicieeliminującą potrzebę pisania gier i innych aplikacji na niszowy,jednoplatformowy Metal.
Albo oczywiście DirectX 12, który do dzisiaj pozostajeograniczony wyłącznie do Windowsa 10. Decyzja, by nie wprowadzaćDX12 na starsze wersje Windowsów może się Microsoftowi odbićjeszcze czkawką. Współpraca AMD, Nvidii, Unity, Google, Mozilli iwielu innych firm prowadzi do powstania jednego standardu dla całejbranży, który działa także na Windowsie 7 i 8.1, a już niebawempokaże co potrafi także a platformie webowej, jako następca WebGL.
Uważni Czytelnicy oczywiście zapytają się – a co z MicrosoftStore? Firma z Redmond sprytnie zabezpieczyła się przez próbamiwykorzystania obcych graficznych API, aplikacjom (i grom) oferowanymw tym sklepie wolno korzystać tylko z DirectX. W ciągu kilkunastępnych miesięcy pojawić się ma jednak kolejna, analogiczna doMoltenVK warstwa translacji, która będzie celowała właśnie wDirectX 12. A to oznacza, że w ciągu następnych 2-3 lat Windowsmoże utracić całą swoją wyłączność na gry pisane specjalniena API Microsoftu. Linux może mało kogo obchodzi w świecieproducentów gier, ale żaden menedżer dużego wydawcy nie zignorujeprzecież iPhone’a.
Przydatne linki
- Vulkan Portability Initative – strona Khronos Group(https://www.khronos.org/vulkan/portability-initiative)
- Opensource'owa wersja MoltenVK – repozytorium GitHuba(https://github.com/KhronosGroup/MoltenVK)
- Vulkan SDK dla macOS-a – strony LunarG
- implementacja Vulkan Portability Initative w języku Rust Mozilli – repozytorium GitHuba(https://github.com/gfx-rs/portability)