Grafike standert Vulkan 1.3 publisearre

Nei twa jier wurk hat it grafyske standertkonsortium Khronos de Vulkan 1.3-spesifikaasje publisearre, dy't in API definiearret foar tagong ta de grafiken en komputermooglikheden fan GPU's. De nije spesifikaasje omfettet korreksjes en útwreidingen sammele oer twa jier. It wurdt opmurken dat de easken fan 'e Vulkan 1.3-spesifikaasje binne ûntworpen foar OpenGL ES 3.1-klasse grafyske apparatuer, dy't stipe sil soargje foar de nije grafyske API yn alle GPU's dy't Vulkan 1.2 stypje. De Vulkan SDK-ark binne pland om mids febrewaris te publisearjen. Neist de haadspesifikaasje is it pland om ekstra útwreidingen oan te bieden foar mid-range en high-end mobile en buroblêd-apparaten, dy't wurde stipe as ûnderdiel fan 'e "Vulkan Milestone" edysje.

Tagelyk wurdt in plan presintearre om stipe te ymplementearjen foar de nije spesifikaasje en ekstra útwreidingen yn grafyske kaarten en apparaatbestjoerders. Intel, AMD, ARM en NVIDIA meitsje har tariede op frijlitting fan produkten dy't Vulkan 1.3 stypje. Bygelyks, AMD kundige oan dat it gau Vulkan 1.3 sil stypje yn 'e AMD Radeon RX Vega-searje fan grafyske kaarten, lykas yn alle kaarten basearre op' e AMD RDNA-arsjitektuer. NVIDIA taret har op om bestjoerders te publisearjen mei stipe foar Vulkan 1.3 foar Linux en Windows. ARM sil stipe tafoegje foar Vulkan 1.3 oan Mali GPU's.

Wichtichste ynnovaasjes:

  • Stipe foar ferienfâldige rendering-passen (Streamlining Render Passes, VK_KHR_dynamic_rendering) is ymplementearre, wêrtroch jo kinne begjinne mei rendering sûnder rendering-passen en framebuffer-objekten te meitsjen.
  • Nije tafoegings binne tafoege om it behear fan grafyske pipeline-kompilaasje te ferienfâldigjen (pipeline, in set operaasjes dy't primitiven en tekstueren fan fektorgrafiken feroaret yn pikselfoarstellings).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - foegje ekstra dynamyske steaten ta om it oantal kompilearre en taheakke steatobjekten te ferminderjen.
    • VK_EXT_pipeline_creation_cache_control - Biedt avansearre kontrôles oer wannear en hoe't pipelines wurde kompilearre.
    • VK_EXT_pipeline_creation_feedback - Jout ynformaasje oer kompilearre pipelines om profilearjen en debuggen makliker te meitsjen.
  • In oantal funksjes binne oerdroegen fan opsjoneel nei ferplichte. Bygelyks, de ymplemintaasje fan bufferferwizings (VK_KHR_buffer_device_address) en it Vulkan-ûnthâldmodel, dat definiearret hoe't tagelyk threaden tagong kinne ta dielde gegevens en syngronisaasjeoperaasjes, binne no ferplicht.
  • Fine-grained subgroup kontrôle (VK_EXT_subgroup_size_control) wurdt foarsjoen, sadat leveransiers kinne foarsjen stipe foar meardere subgroup maten en ûntwikkelers kinne selektearje de grutte se nedich.
  • De VK_KHR_shader_integer_dot_product-útwreiding is levere, dy't kin wurde brûkt om de prestaasjes fan masine-learramen te optimalisearjen troch hardware-fersnelling fan dot-produktoperaasjes.
  • Yn totaal binne 23 nije útwreidingen opnommen:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_ûnderhâld4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_syngronisaasje2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formats
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_image_robustness
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_private_data
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • In nij foarwerp type VkPrivateDataSlot tafoege. 37 nije kommando's en mear dan 60 struktueren waarden ymplementearre.
  • De SPIR-V 1.6-spesifikaasje is bywurke om in tuskenlizzende skaadfertsjintwurdiging te definiearjen dy't universeel is foar alle platfoarms en kin brûkt wurde foar sawol grafiken as parallelle komputer. SPIR-V giet it om it skieden fan in aparte shader-kompilaasjefaze yn in tuskenlizzende fertsjintwurdiging, wêrtroch jo frontends kinne meitsje foar ferskate talen op heech nivo. Op grûn fan ferskate ymplemintaasjes op heech nivo wurdt in inkele tuskenlizzende koade apart generearre, dy't brûkt wurde kin troch OpenGL, Vulkan en OpenCL-bestjoerders sûnder de ynboude shader-kompiler te brûken.
  • It konsept fan kompatibiliteitsprofilen wurdt foarsteld. Google is de earste dy't in basislineprofyl frijlitte foar it Android-platfoarm, wat it makliker makket om it nivo fan stipe foar avansearre Vulkan-mooglikheden te bepalen op in apparaat bûten de Vulkan 1.0-spesifikaasje. Foar de measte apparaten kin profylstipe wurde levere sûnder OTA-fernijings te ynstallearjen.

Lit ús ûnthâlde dat de Vulkan API opmerklik is foar syn radikale ferienfâldiging fan bestjoerders, de oerdracht fan 'e generaasje fan GPU-kommando's oan' e applikaasjekant, de mooglikheid om debuggen te ferbinen, de ferieniging fan 'e API foar ferskate platfoarms en it brûken fan in foarkompilearre tuskenlizzende fertsjintwurdiging fan koade foar útfiering oan de GPU kant. Om hege prestaasjes en foarsisberens te garandearjen, leveret Vulkan applikaasjes mei direkte kontrôle oer GPU-operaasjes en native stipe foar GPU-multy-threading, dy't de oerhead fan 'e sjauffeur minimearret en de mooglikheden oan' e sjauffeur folle ienfâldiger en mear foarsisber makket. Bygelyks, operaasjes lykas ûnthâld behear en flater ôfhanneling, ymplemintearre yn OpenGL oan de bestjoerder kant, ferpleatst nei it tapassing nivo yn Vulkan.

Vulkan spant alle beskikbere platfoarms en leveret ien API foar buroblêd, mobyl en web, wêrtroch ien mienskiplike API kin wurde brûkt oer meardere GPU's en applikaasjes. Mei tank oan Vulkan's multi-layer-arsjitektuer, wat ark betsjuttet dy't wurkje mei elke GPU, kinne OEM's gebrûk meitsje fan yndustrystandert ark foar koadebeoardieling, debuggen en profilearjen tidens ûntwikkeling. Foar it meitsjen fan shaders wurdt in nije draachbere tuskenfertsjintwurdiging, SPIR-V, foarsteld, basearre op LLVM en dielen fan kearntechnologyen mei OpenCL. Om apparaten en skermen te kontrolearjen, biedt Vulkan de WSI (Window System Integration) ynterface, dy't sawat deselde problemen oplost as EGL yn OpenGL ES. WSI-stipe is út it fak beskikber yn Wayland - alle applikaasjes mei Vulkan kinne rinne yn in omjouwing fan net wizige Wayland-tsjinners. De mooglikheid om te wurkjen fia WSI wurdt ek foarsjoen foar Android, X11 (mei DRI3), Windows, Tizen, macOS en iOS.

Boarne: opennet.ru

Add a comment