Opublikowano standard graficzny Vulkan 1.4

Po prawie trzech latach pracy konsorcjum Khronos, zajmujące się opracowaniem standardów graficznych, opublikowało specyfikację Vulkan 1.4, określającą API do dostępu do graficznych i obliczeniowych możliwości GPU. Nowa specyfikacja uwzględnia nagromadzone rozszerzenia, które wcześniej były traktowane jako opcjonalne, a także wprowadza szereg nowych możliwości i podnosi minimalne wymagania sprzętowe. Narzędzie Vulkan SDK planowane jest do publikacji w styczniu 2025 roku.

Produkty obsługujące Vulkan 1.4 są gotowe do wydania przez firmy AMD, Arm, Imagination, Intel, NVIDIA, Qualcomm i Samsung. Otwarte sterowniki dla GPU AMD (radv), Apple M1/M2 (honeykrisp), Intel (anv), NVIDIA (nvk) i Qualcomm (tu), rozwijane w ramach projektu Mesa, przeszły już wszystkie testy zgodności z Vulkan 1.4 z zestawu CTS (Khronos Conformance Test Suite) i zostały uwzględnione na liście certyfikowanych sterowników. Na liście znajdują się również sterowniki Samsung i Qualcomm dla platformy Android oraz sterowniki dla GPU PowerVR D-Series DXT* od firmy Imagination Technologies oraz sterowniki zastrzeżone NVIDIA.

Główne nowości:

  • Dodano obsługę mechanizmu «Streaming Transfers», przeznaczonego do zapewnienia przesyłania dużych ilości danych między głównym systemem (hospitolem) a urządzeniem graficznym, bez przerywania renderowania i spowalniania wydajności. Mechanizm ten został zrealizowany dzięki nowemu rozszerzeniu VK_EXT_host_image_copy, którego wsparcie jest opcjonalne.
  • Przeniesiono do kategorii obowiązkowych możliwości mające na celu zwiększenie wydajności:
    • Push Descriptors — możliwość zapisywania aktualizacji deskryptorów bezpośrednio w buforze poleceń, zamiast tworzenia oddzielnych zestawów deskryptorów i ich wiązania z buforem poleceń.
    • VK_KHR_dynamic_rendering_local_read — pozwala na odczyt z zagnieżdżonych buforów (attachments) i zasobów zapisywanych przez poprzednie fragmentowe shadery w ramach dynamicznych przejść renderujących (render pass).
    • VK_EXT_scalar_block_layout — pozwala na użycie struktury podobnej do C dla bloków SPIR-V, w której można wyrównywać typy nieskalarnę na podstawie rozmiaru ich komponentów.
  • W skład wchodzą rozszerzenia VK_KHR_maintenance5 i VK_KHR_maintenance6, które dostarczają pomocnicze komendy i struktury w celu uproszczenia zarządzania zasobami i shaderami.
  • Gwarantowane wsparcie dla renderowania w rozdzielczości 8K (7680 x 4320 pikseli) i z użyciem do 8 niezależnych buforów renderowania.
  • W zestawie znajdują się rozszerzenia:
    • VK_KHR_global_priority
    • VK_KHR_index_type_uint8
    • VK_KHR_line_rasterization
    • VK_KHR_load_store_op_none
    • VK_KHR_map_memory2
    • VK_KHR_push_descriptor
    • VK_KHR_shader_expect_assume
    • VK_KHR_shader_float_controls2
    • VK_KHR_shader_subgroup_rotate
    • VK_KHR_vertex_attribute_divisor
    • VK_EXT_pipeline_protected_access
    • VK_EXT_pipeline_robustness
  • Wiele możliwości, które wcześniej były opcjonalne, zostało uznanych za obowiązkowe.
  • Dodano dużą liczbę nowych poleceń i struktur.

API Vulkan wyróżnia się radykalnym uproszczeniem sterowników, przeniesieniem generowania poleceń GPU na stronę aplikacji, możliwością podłączania warstw debugujących, ujednoliceniem API dla różnych platform oraz zastosowaniem wstępnie skompilowanego pośredniego przedstawienia kodu do wykonania po stronie GPU.

Aby zapewnić wysoką wydajność i przewidywalność, Vulkan oferuje aplikacjom narzędzia do bezpośredniego zarządzania operacjami GPU oraz wbudowaną obsługę wielowątkowego przetwarzania poleceń GPU, minimalizując narzuty wprowadzane przez sterownik, a możliwości realizowane po stronie sterownika stają się znacznie uproszczone i bardziej przewidywalne. Na przykład operacje takie jak zarządzanie pamięcią i przetwarzanie błędów, realizowane w OpenGL po stronie sterownika, są w Vulkan przeniesione na poziom aplikacji.

Vulkan obejmuje wszystkie dostępne platformy i zapewnia jednolite API dla systemów desktopowych, mobilnych oraz Web, umożliwiając korzystanie z jednego wspólnego API dla różnych procesorów graficznych i obszarów zastosowania. Dzięki wielowarstwowej architekturze Vulkan, która zakłada tworzenie narzędzi działających z dowolnymi GPU, producenci sprzętu mogą stosować typowe narzędzia do weryfikacji kodu, debugowania i profilowania.

Aby tworzyć shadery, zaproponowano przenośne pośrednie przedstawienie SPIR-V, oparte na LLVM i korzystające ze wspólnych z OpenCL technologii bazowych. W Vulkan można również używać języka shaderów HLSL, stosowanego w DirectX, poprzez jego translację do SPIR-V. Do zarządzania urządzeniami i ekranami w Vulkan proponowany jest interfejs WSI (Window System Integration), który spełnia podobne zadania jak EGL w OpenGL ES. Wsparcie dla WSI jest dostępne natywnie w Wayland – wszystkie aplikacje korzystające z Vulkan mogą być uruchamiane w niezmodyfikowanym środowisku Wayland. serwerów Możliwość pracy poprzez WSI została również zapewniona dla Androida, X11 (z DRI3), Windows, Tizen, macOS i iOS.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster