r   e   k   l   a   m   a
r   e   k   l   a   m   a

NVIDIA wierzy w Vulkana. Dla Zielonych może być on ważniejszy od DirectX 12

Strona główna AktualnościOPROGRAMOWANIE

Niedopasowanie architektury graficznej Maxwell Nvidii do interfejsu grafiki DirectX 12 wzbudziło sporo kontrowersji. Wszystko wskazuje na to, że mechanizm asynchronicznych shaderów na sprzęcie zielonych nie może być tak wydajny, jak na architekturze GCN firmy AMD, bez względu na optymalizacje sterowników. A jak będzie wyglądała kwestia z głównym konkurentem DirectX 12, otwartym i wolnym API Vulkan, rozwijanym przez branżowe stowarzyszenie Khronos? Bez większego echa dotąd przeszło wystąpienie Piersa Daniella na tegorocznej konferencji SIGGRAPH, podczas którego przedstawił on podejście Nvidii właśnie do Vulkana. Wiele wskazuje na to, że to właśnie Vulkan, a nie DirectX 12 będzie dla zielonych odgrywał główną rolę w ich strategii.

Daniell przypomniał, że Vulkan jest jedynym wieloplatformowym interfejsem grafiki, który działa nie tylko na Windows 10, ale też na poprzednich wersjach „okienek”, oraz na Linuksie, SteamOS-ie i Androidzie. Stoją za nim wszyscy liczący się producenci GPU, nie tylko desktopowych, ale i mobilnych, a także wielu producentów oprogramowania, na czele z Valve, Unity, EA, Oxide, Epic Games, Red Hatem, Canonicalem, i VMware. Nic w tym dziwnego – od samego początku Vulkan projektowany był z myślą o łatwym rozszerzaniu, tak by sami producenci mogli sobie definiować zbiory obsługiwanych funkcji.

Za wcześnie jeszcze, by porównywać ze sobą Vulkana i DX 12, finalna specyfikacja tego pierwszego ma zostać przedstawiona przez grupę Khronos dopiero pod koniec tego roku, ale już można sądzić, że pod względem architektury oba API nie będą od siebie odmienne. Podobnie rozwiązywana jest kwestia wiązania zasobów z shaderami, podobnie realizowany niskopoziomowy dostęp do pamięci czy ograniczenie narzutu na CPU czy dynamicznego modyfikowania stanu obiektów w potoku renderowania.

r   e   k   l   a   m   a

Vulkan jednak, przynajmniej w teorii, może więcej. Lepiej sobie radzi z renderowaniem kafelkowym, dobrze znanym ze starych konsol (szczególnie tych na grafice PowerVR), a dziś wracającym do nas w mobilnych GPU. Mechanizm przekazywania renderingu (renderpass) pozwala zdefiniować, jak cele renderowania powinny być ładowane do pamięci i z pamięci na początku renderowania każdej sceny. Imagination Technologies, które stoi za tym pomysłem podkreśla, że dzięki temu można uniknąć kosztownego oczyszczania buforów z innych graficznych API. Tak samo łatwo jest przez Vulkana rozdzielać dane pomiędzy wieloma GPU

Co ciekawe, Vulkan przejmuje też rozwiązania znane z wcześniejszych wersji DirectX. Do tej pory w sterownikach OpenGL znajdował się kompilator shaderów, parsujący wysokopoziomowy kod w języku GLSL. W Vulkanie ten kod GLSL jest wpierw kompilowany do kodu pośredniczącego, tak jak to jest w API Microsoftu.

Czemu jednak Vulkan ma takie znaczenie dla Nvidii? Zieloni przyznają, że chodzi przede wszystkim o otwartość. Dzięki rozszerzalności tego API, mogą łatwo wprowadzać nowe funkcje swoich GPU. Vulkan jest także daleko bardziej skalowalny niż rozwiązania konkurencyjne, będzie działał zarówno na energooszczędnych urządzeniach mobilnych (z Tegrą K1), jak i na potężnych stacjach roboczych (GTX Titan X). NVIDIA podkreśla jednak jeszcze jedno – atutem Vulkana jest jego możliwość skalowania się na wiele wątków procesora, tak że może być wykorzystany niemal bez blokowania dostępu do obiektów wykorzystywanych w innym wątku, zapewniając maksymalną wydajność w kluczowych operacjach.

Zieloni przedstawili też swoje sterowniki dla Vulkana. Są one póki co dostępne tylko dla członków grupy Khronos, po podpisaniu NDA. Wiadomo już, że będą one częścią jednego sterownika, wraz ze sterownikiem OpenGL. Dla aplikacji wykorzystującej Vulkana część OpenGL będzie całkowicie obojętna – sterownik udostępnia potrzebne jej API, z bezpośrednim dostępem do GPU dla zadań wymagających najwyższej wydajności oraz narzędzia do zarządzania zasobami i procesorem graficznym. NVIDIA przewiduje jednak też sytuacje, w których aplikacja będzie wykorzystywała zarówno OpenGL jak i Vulkana jednocześnie (tak może być najczęściej w oprogramowaniu typu CAD). Wtedy to ścieżki do sprzętu obu API pozostają oddzielne, ale mogą one między sobą wymieniać zasoby.

W tej sytuacji widać, że dla samej Nvidii, przymierzającej się do wejścia na rynek konsol do gier ze swoim urządzeniem SHIELD na bazie procesora Tegra X1, upowszechnienie się Vulkana ma daleko większe znaczenie, niż Direct X12. Jeśli ta firma, mająca przecież ogromny wpływ na rynek gier zacznie sugerować studiom wydawniczym, że Vulkan jest drogą, którą należy podążać, pokazując dobrze zoptymalizowane sterowniki nie tylko na Windows, ale też na Androida i SteamOS-a, wybór będzie prosty. Przeniesienie swoich tytułów z Windows (i to nie tylko Windows 10) na konsole androidowe czy komputery działające pod kontrolą linuksowego SteamOS-a będzie znacznie tańsze, a potencjalny rynek znacznie większy.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.