Etter nesten tre års arbeid har grafikkstandardkonsortiet Khronos publisert Vulkan 1.4-spesifikasjonen, som definerer et API for tilgang til grafikk- og databehandlingsmulighetene til GPUer. Den nye spesifikasjonen absorberte de akkumulerte utvidelsene som tidligere var posisjonert som valgfrie, og ga også en rekke nye funksjoner og økte minimumskravene til maskinvare. Vulkan SDK-verktøyene er planlagt publisert i januar 2025.
AMD, Arm, Imagination, Intel, NVIDIA, Qualcomm og Samsung forbereder seg på å gi ut produkter som støtter Vulkan 1.4. Åpne drivere for AMD (radv), Apple M1/M2 (honeykrisp), Intel (anv), NVIDIA (nvk) og Qualcomm (tu) GPUer utviklet av Mesa-prosjektet har allerede bestått alle kompatibilitetstester med Vulkan 1.4 fra CTS (Khronos) Conformance) set Test Suite) og er inkludert i listen over sertifiserte sjåfører. Listen inkluderer også Samsung- og Qualcomm-drivere for Android-plattformen, samt Imagination Technologies PowerVR D-Series DXT* GPU-drivere og proprietære NVIDIA-drivere.
Hovedinnovasjoner:
- Lagt til støtte for "Streaming Transfers"-mekanismen, designet for å muliggjøre strømming av store mengder data mellom hovedsystemet (verten) og grafikkenheten, uten å avbryte gjengivelsen eller redusere ytelsen. Mekanismen implementeres ved å bruke den nye utvidelsen VK_EXT_host_image_copy, støtte for denne er valgfri.
- Følgende funksjoner er gjort obligatoriske for å forbedre produktiviteten:
- Push Descriptors - Evnen til å skrive deskriptoroppdateringer direkte til kommandobufferen, i stedet for å lage separate sett med deskriptorer og binde dem til kommandobufferen.
- VK_KHR_dynamic_rendering_local_read – Tillater lesing fra nestede buffere (vedlegg) og ressurser skrevet av tidligere fragmentskyggelegging som en del av dynamiske gjengivelsespass.
- VK_EXT_scalar_block_layout - Tillater en C-lignende struktur for SPIR-V-blokker, der ikke-skalartyper kan justeres basert på størrelsen på komponentene deres.
- Strukturen inkluderer utvidelsene VK_KHR_maintenance5 og VK_KHR_maintenance6, som gir hjelpekommandoer og strukturer for å forenkle administrasjonen av ressurser og shaders.
- Garantert støtte for gjengivelse ved 8K-oppløsning (7680 x 4320 piksler) med opptil 8 uavhengige gjengivelsesbuffere.
- Utvidelser inkludert:
- 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
- Mange funksjoner som tidligere var valgfrie har blitt overført til kategorien obligatorisk.
- En stor del av nye lag og strukturer er lagt til.
Vulkan API er kjent for sin radikale forenkling av drivere, overføring av GPU-kommandoer til applikasjonssiden, muligheten til å koble til feilsøkingslag, forening av APIer for ulike plattformer og bruken av en forhåndskompilert mellomrepresentasjon av kode for utførelse på GPU-siden.
For å sikre høy ytelse og forutsigbarhet, gir Vulkan applikasjoner med direkte kontroll over GPU-operasjoner og innebygd støtte for GPU-flertråding, noe som minimerer driveroverhead og gjør funksjonene på førersiden mye enklere og mer forutsigbare. For eksempel flyttes operasjoner som minnehåndtering og feilhåndtering, implementert i OpenGL på førersiden, til applikasjonsnivå i Vulkan.
Vulkan spenner over alle tilgjengelige plattformer og gir én enkelt API for skrivebord, mobil og web, slik at én felles API kan brukes på tvers av flere GPUer og applikasjoner. Takket være Vulkans flerlagsarkitektur, som betyr verktøy som fungerer med alle GPUer, kan OEM-er bruke industristandardverktøy for kodegjennomgang, feilsøking og profilering under utvikling.
For shaderoppretting tilbys SPIR-V, en bærbar mellomrepresentasjon (IR) basert på LLVM og som deler kjerneteknologier med OpenCL. Vulkan støtter også HLSL-shaderspråket som brukes i DirectX, og oversetter det til SPIR-V. For enhets- og skjermadministrasjon tilbyr Vulkan WSI-grensesnittet (Window System Integration), som utfører lignende oppgaver som EGL i OpenGL ES. WSI-støtte er tilgjengelig rett ut av esken i Wayland – alle Vulkan-baserte applikasjoner kan kjøre i et umodifisert miljø. servere Wayland. WSI-støtte er også tilgjengelig for Android, X11 (med DRI3), Windows, Tizen, macOS og iOS.
Kilde: opennet.ru
