Wulkan (API)
| Oprogramowanie Vulkan | |
|---|---|
| Gatunek muzyczny | API (nie wymienione ) |
| Deweloper | Grupa Khronos |
| Data pierwszej wersji | 16 lutego 2016 [1] |
| Ostatnia wersja | 1.3.204 (25 stycznia 2022) |
| System operacyjny | Wieloplatformowy |
| Język | C++ C |
| Licencja | Apache 2.0 ( bezpłatna licencja ) |
| Stronie internetowej | www.vulkan.org |
Vulkan to niskopoziomowy , wieloplatformowy interfejs aplikacji 2D i 3D (API) , po raz pierwszy ogłoszony na GDC 2015 przez Khronos Group . Początkowo został wprowadzony jako „ OpenGL nowej generacji ” Khronosa lub po prostu „glNext”, ale użycie tych nazw zostało zawieszone po ogłoszeniu nazwy Vulkan. Podobnie jak OpenGL, celem Vulkan jest wysoka wydajność dla aplikacji graficznych 3D w czasie rzeczywistym, takich jak gry i media interaktywne na wszystkich platformach; oferuje również wyższą wydajność i mniejsze obciążenie procesora niżDirect3D 12 i płaszcz . Mówi się, że Vulkan jest „pochodnym” i „zbudowanym” na komponentach AMD Mantle .
Khronos Group ogłosił zamiar połączenia Vulkan i OpenCL w jedną bibliotekę, co pozwoliłoby na wspólne zarządzanie częścią graficzną i obliczeniową, znacznie zmniejszając złożoność.
Wprowadzenie
Vulkan ma na celu zapewnienie wielu zalet w porównaniu z innymi interfejsami API, a także jego poprzednikiem OpenGL. Vulkan oferuje niższe koszty, bardziej bezpośrednią kontrolę nad sprzętem i procesorem graficznym oraz mniejsze zużycie procesora, co prowadzi do następujących korzyści:
- OpenGL używa języka wysokiego poziomu GLSL do pisania shaderów (analogicznie do HLSL DirectX ), który zmusza każdy sterownik OpenGL do wykonania własnego kompilatora dla GLSL, który wykonuje translację programu shader w czasie wykonywania w kodzie wykonywalnym dla platformy docelowej. Vulkan zapewnia pośrednika binarnego o nazwie SPIR-V (Standard Portable Intermediate Representation). Zmniejsza to obciążenie dostawców sterowników, umożliwia wstępną kompilację shaderów, umożliwia twórcom aplikacji pisanie shaderów w językach innych niż GLSL.
- Wieloplatformowe interfejsy API obsługiwane zarówno na urządzeniach mobilnych, jak i na zaawansowanych kartach graficznych.
- Niezależny od systemu operacyjnego, aby poprawić przenośność aplikacji tworzonych za pomocą interfejsu API.
- Ulepszona obsługa nowoczesnych systemów korzystających z wielowątkowości.
- Zmniejszone obciążenie procesora w sytuacjach, w których procesor jest wąskim gardłem, co pozwala na wyższą przepustowość obliczeń i renderowania GPU.
Wersje
Vulkan 1.0
Oficjalnie wydane 16 lutego 2016 r., reprezentują pierwszą ostateczną wersję API Vulkan. Aktualizacje są publikowane okresowo, wprowadzając nowe funkcje, naprawiając błędy i rozszerzając dokumentację dla programistów.
Vulkan 1.0.5 (4 marca 2016)
- Naprawa błędów
- Dodano nowe zasady
- Poprawiono niektóre specyfikacje w dokumentacji
- Dodano rozszerzenie NVIDIA VK_NV_glsl_shader
Vulkan 1.0.39 (23 stycznia 2017)
Jest to wydanie z największą ilością nowości od pierwszego wydania api
- Naprawa błędów
- Dodano wiele nowych rozszerzeń (np. VK_KHR_get_physical_device_properties2 i VK_KHR_maintenance1)
- Cała dokumentacja zaktualizowana, ze szczególnym uwzględnieniem wyjaśnień
- Niektóre optymalizacje dotyczące wydajności
Vulkan 1.0.61.1 (20 września 2017)
- Naprawa błędów
- Wprowadzono wiele nowych rozszerzeń (VK_EXT_sample_locations, VK_EXT_validation_cache, VK_KHR_image_format_list itp.)
- Zaprzestanie obsługi programu Microsoft Visual Studio 2013. Obsługiwane są tylko nowsze wersje.
Vulkan 1.1
Wydana 8 marca 2018 roku jest największą aktualizacją od czasu pierwszej wersji. Będzie również śledzić postępy okresowych aktualizacji, jak w wersji 1.0.
Główne innowacje to:
- Integruje obsługę Spir-V 1.3
- Wprowadza obsługę HLSL
- Wprowadza wsparcie dla YCbCr
- Liczne nowe funkcje (grupowanie urządzeń, multiwidok itp.).
Vulkan 1.2
Wydany 15 stycznia 2020 r. jest wynikiem wspólnych wysiłków Kronosa ze społecznością programistów, którzy wymagali wdrożenia wielu funkcji i rozwiązania znanych problemów.
Najważniejsze wiadomości to:
- Sygnalizacja świetlna osi czasu do synchronizacji
- Ulepszona obsługa HLSL
- Indeks deskryptorów
- 23 poprzednie rozszerzenia są zintegrowane z podstawowym API
- Nowy pakiet SDK
W wersji 1.2 rozszerzenia do ray tracingu zostały wprowadzone eksperymentalnie .
Vulkan 1.3
25 stycznia 2022 r. Vulkan 1.3 został wydany przez grupę Khronos. Vulkan 1.3 koncentruje się na zmniejszeniu fragmentacji poprzez uczynienie nowych funkcji nieopcjonalnymi, dzięki czemu urządzenie można uznać za kompatybilne z Vulkan 1.3. Nowe funkcje w Vulkan 1.3 obejmują dynamiczne renderowanie, dodatkowy stan dynamiczny, ulepszone API synchronizacji i niestandardowe profile dla urządzenia.
Dodatki
Kiedy wydała OpenCL 2.2, grupa Khronos ogłosiła, że w miarę możliwości będzie zbiegać się z Vulkan, aby umożliwić elastyczność dystrybucji oprogramowania OpenCL w obu API. Zostało to zademonstrowane przez Adobe Premiere Rush przy użyciu kompilatora clspv o otwartym kodzie źródłowym do kompilowania znacznych ilości kodu jądra OpenCL C w celu uruchomienia w środowisku uruchomieniowym Vulkan w celu dystrybucji na Androida.
Notatki
Linki zewnętrzne
- Oficjalna strona , na vulkan.org .
- Repozytorium źródłowe Vulkan , na github.com .