Grafika normo Vulkan 1.3 publikigita

Post du jaroj da laboro, la konsorcio pri grafikaj normoj Khronos publikigis la specifon Vulkan 1.3, kiu difinas API por aliri la grafikajn kaj komputajn kapablojn de GPUoj. La nova specifo asimilas korektojn kaj etendaĵojn akumulitajn dum du jaroj. Oni rimarkas, ke la postuloj de la specifo Vulkan 1.3 estas dizajnitaj por OpenGL ES 3.1-klasa grafika ekipaĵo, kiu certigos subtenon por la nova grafika API en ĉiuj GPU-oj kiuj subtenas Vulkan 1.2. La Vulkan SDK-iloj estas planitaj esti publikigitaj meze de februaro. Krom la ĉefa specifo, oni planas oferti pliajn etendaĵojn por meznivelaj kaj altnivelaj moveblaj kaj labortablaj aparatoj, kiuj estos subtenataj kiel parto de la eldono "Vulkan Milestone".

Samtempe, plano estas prezentita por efektivigi subtenon por la nova specifo kaj pliajn etendaĵojn en grafikaj kartoj kaj aparataj ŝoforoj. Intel, AMD, ARM kaj NVIDIA prepariĝas liberigi produktojn subtenantajn Vulkan 1.3. Ekzemple, AMD anoncis, ke ĝi baldaŭ subtenos Vulkan 1.3 en la serio de grafikaj kartoj AMD Radeon RX Vega, same kiel en ĉiuj kartoj bazitaj sur la arkitekturo AMD RDNA. NVIDIA prepariĝas eldoni ŝoforojn kun subteno por Vulkan 1.3 por Linukso kaj Vindozo. ARM aldonos subtenon por Vulkan 1.3 al Maliaj GPUoj.

Ĉefaj novigoj:

  • Subteno por simpligitaj bildigpasoj (Streamlining Render Passes, VK_KHR_dynamic_rendering) estis efektivigita, permesante al vi komenci bildigon sen krei bildigajn enirpermesilojn kaj framebuffer-objektojn.
  • Novaj etendaĵoj estis aldonitaj por simpligi la administradon de grafika dukto-kompilo (dukto, aro de operacioj, kiuj igas vektorajn grafikajn primitivaĵojn kaj teksturojn en pikselojn).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - aldonu pliajn dinamikajn statojn por redukti la nombron da kompilitaj kaj aligitaj statobjektoj.
    • VK_EXT_pipeline_creation_cache_control - Provizas altnivelajn kontrolojn pri kiam kaj kiel duktoj estas kompilitaj.
    • VK_EXT_pipeline_creation_feedback - Provizas informojn pri kompilitaj duktoj por faciligi profiladon kaj sencimigon.
  • Kelkaj funkcioj estis translokigitaj de laŭvola al deviga. Ekzemple, la efektivigo de bufroreferencoj (VK_KHR_buffer_device_address) kaj la Vulkan-memormodelo, kiu difinas kiel samtempaj fadenoj povas aliri komunajn datumojn kaj sinkronigajn operaciojn, nun estas devigaj.
  • Fajngrajna subgrupa kontrolo (VK_EXT_subgroup_size_control) estas disponigita tiel ke vendistoj povas provizi subtenon por multoblaj subgrupgrandecoj kaj programistoj povas elekti la grandecon kiun ili postulas.
  • La etendo VK_KHR_shader_integer_dot_product estis provizita, kiu povas esti uzata por optimumigi la agadon de maŝinlernadaj kadroj danke al aparatara akcelo de punktoproduktaj operacioj.
  • Totalo de 23 novaj vastiĝoj estas inkluditaj:
    • VK_KHR_kopi_komandoj2
    • VK_KHR_dinamika_bildado
    • VK_KHR_formataj_karakteraj_flagoj2
    • VK_KHR_prizorgado4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_ne_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_sinkronigo2
    • VK_KHR_zero_inicialigi_laborgrupon_memoron
    • VK_EXT_4444_formatoj
    • VK_EXT_extended_dinamic_state
    • VK_EXT_plilongigita_dinamika_stato2
    • VK_EXT_bildo_forteco
    • VK_EXT_enline_uniform_bloko
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_privataj_datenoj
    • VK_EXT_shader_demote_to_helpanto_invoko
    • VK_EXT_subgrupo_grandeco_kontrolo
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formatoj
  • Aldonita nova objektotipo VkPrivateDataSlot. 37 novaj komandoj kaj pli ol 60 strukturoj estis efektivigitaj.
  • La SPIR-V 1.6-specifo estis ĝisdatigita por difini mezan ombran reprezentadon, kiu estas universala por ĉiuj platformoj kaj povas esti uzata por kaj grafiko kaj paralela komputado. SPIR-V implikas apartigi apartan nuancan kompilfazon en mezan reprezenton, kiu ebligas al vi krei fasadojn por diversaj altnivelaj lingvoj. Surbaze de diversaj altnivelaj efektivigoj, ununura meza kodo estas aparte generita, kiu povas esti uzata de OpenGL, Vulkan kaj OpenCL-ŝoforoj sen uzado de la enkonstruita ombra kompililo.
  • La koncepto de kongruaj profiloj estas proponita. Google estas la unua, kiu publikigas bazlinian profilon por la Android-platformo, kiu faciligos determini la nivelon de subteno por altnivelaj Vulkan-kapabloj sur aparato preter la Vulkan 1.0-specifo. Por plej multaj aparatoj, profilsubteno povas esti provizita sen instali OTA-ĝisdatigojn.

Ni memoru, ke la Vulkan API estas rimarkinda pro ĝia radikala simpligo de ŝoforoj, la translokigo de la generacio de GPU-komandoj al la aplikaĵo, la kapablo konekti sencimigajn tavolojn, la unuigo de la API por diversaj platformoj kaj la uzo de antaŭkompilita. meza reprezentado de kodo por ekzekuto sur la GPU-flanko. Por certigi altan rendimenton kaj antaŭvideblecon, Vulkan provizas aplikaĵojn per rekta kontrolo de GPU-operacioj kaj indiĝena subteno por GPU-multi-fadenado, kiu minimumigas ŝoforan superkoston kaj igas ŝofor-flankajn kapablojn multe pli simplaj kaj antaŭvideblaj. Ekzemple, operacioj kiel memoradministrado kaj erartraktado, efektivigitaj en OpenGL ĉe la ŝoforflanko, estas proponitaj al la aplikaĵnivelo en Vulkan.

Vulkan ampleksas ĉiujn disponeblajn platformojn kaj disponigas ununuran API por labortablo, poŝtelefono kaj retejo, permesante ke unu komuna API estu uzata tra pluraj GPUoj kaj aplikoj. Danke al la plurtavola arkitekturo de Vulkan, kio signifas ilojn, kiuj funkcias kun iu ajn GPU, OEM-oj povas uzi industrinormajn ilojn por koda revizio, sencimigado kaj profilado dum disvolviĝo. Por kreado de ombrantoj, nova portebla meza reprezentantaro, SPIR-V, estas proponita, bazita sur LLVM kaj dividanta kernteknologiojn kun OpenCL. Por kontroli aparatojn kaj ekranojn, Vulkan ofertas la interfacon WSI (Window System Integration), kiu solvas proksimume la samajn problemojn kiel EGL en OpenGL ES. WSI-subteno disponeblas el la skatolo en Wayland - ĉiuj aplikaĵoj uzantaj Vulkan povas funkcii en medio de nemodifitaj Wayland-serviloj. La kapablo labori per WSI ankaŭ estas provizita por Android, X11 (kun DRI3), Vindozo, Tizen, macOS kaj iOS.

fonto: opennet.ru

Aldoni komenton