Grafika normo Vulkan 1.2 publikigita

La Khronos-konsorcio, kiu evoluigas grafiknormojn,
eldonita specifo Vulkan 1.2, kiu difinas API por aliri la grafikajn kaj komputilajn kapablojn de la GPU. La nova specifo korpigas korektojn amasigitajn dum du jaroj kaj pligrandigo. Ŝoforoj subtenantaj la novan version de Vulkan jam estas liberigita Intel-firmao, AMD, ARM, Imagination Technologies kaj NVIDIA. Mesa ofertas Vulkan 1.2 subtenon por ŝoforoj RADV (AMD-kartoj) kaj ANV (Intelo). Vulkan 1.2-subteno ankaŭ estas efektivigita en la erarserĉilo RenderDoc 1.6, LunarG Vulkan SDK kaj aro da ekzemploj Vulkan-Samples.

Ĉefa novigoj:

  • Alportita al vi efektivigo de shader programlingvo ĝis preta por ĝeneraligita uzo HLSL, evoluigita fare de Mikrosofto por DirectX. HLSL-subteno en Vulkan ebligas uzi la samajn HLSL-ombrilojn en aplikaĵoj bazitaj sur Vulkan kaj DirectX, kaj ankaŭ simpligas la tradukon de HLSL al SPIR-V. Por kompili ombrantojn, oni rekomendas uzi norman kompililon
    DXC, kiu estis malfermita fare de Mikrosofto en 2017 kaj estas bazita sur LLVM-teknologio. Vulkan-subteno estas efektivigita per aparta backend, kiu ebligas al vi traduki HLSL en mezan reprezentadon de SPIR-V-ombriloj. La efektivigo kovras ne nur ĉiujn enkonstruitajn kapablojn
    HLSL, inkluzive de matematikaj tipoj, kontrolfluoj, funkcioj, aroj, rimedspecoj, nomspacoj, Shader Model 6.2, strukturoj kaj metodoj, sed ankaŭ permesas la uzon de Vulkan-specifaj etendaĵoj kiel ekzemple VKRay de NVIDIA. En HLSL-reĝimo aldone al Vulkan, eblis organizi la laboron de ludoj kiel Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey kaj Tomb Raider.

    Grafika normo Vulkan 1.2 publikigita

  • Specifo ĝisdatigita SPIR-V 1.5, kiu difinas mezan reprezentadon de ombriloj, 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.

    Grafika normo Vulkan 1.2 publikigita

  • La kerna Vulkan API inkluzivas 23 etendaĵojn, kiuj pliigas rendimenton, plibonigas bildigan kvaliton kaj simpligas disvolviĝon. Inter la aldonitaj etendaĵoj:
    • Kronologiaj semaforoj (Tempolinia semaforo), unuiganta sinkronigon kun la gastiganto kaj aparataj atendovicoj (permesante al vi uzi unu primitivon por omnidirekta sinkronigo inter la aparato kaj la gastiganto, sen uzi apartajn VkFence kaj VkSemaphore-primitivojn). Novaj semaforoj estas reprezentitaj per monotone kreskanta 64-bita valoro kiu povas esti spurita kaj ĝisdatigita tra multoblaj fadenoj.
      Grafika normo Vulkan 1.2 publikigita

    • Возможность использования в шейдерах числовых типов с пониженной точностью;
    • HLSL-kongrua memora aranĝo opcio;
    • Nebindaj rimedoj (senligaj), kiu forigas la limigon de la nombro da resursoj disponeblaj al ombrantoj uzante la komunan virtualan spacon de sistemmemoro kaj GPU-memoro;
    • Formala memormodelo, kiu difinas kiel samtempaj fadenoj povas aliri komunajn datumojn kaj sinkronigajn operaciojn;
    • Indeksado de priskribiloj для повторного использования дескрипторов раскладок в нескольких шейдерах;
    • Buffer-ligiloj.

    Plena listo de aldonitaj etendaĵoj:

  • Aldonita de pli ol 50 novaj strukturoj kaj 13 funkcioj;
  • Mallongigitaj versioj de la specifo estis preparitaj por tipaj celplatformoj, simpligante laboron sur platformoj por kiuj ĉiuj etendaĵoj ankoraŭ ne estas subtenataj, kaj permesante fari sen selektema aktivigo de la bazaj kapabloj de la Vulkan API.
  • Продолжена работа над проектом по обеспечению переносимости с другими графическими API. Например, в Vulkan предложены расширения, позволяющие транслировать OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GANTO, Angulo) kaj DirectX (DXVK, vkd3d) per la Vulkan API, kaj ankaŭ, male, ebligi Vulkan labori sur platformoj sen ĝia denaska subteno (gfx-rs и Cindroj por labori aldone al OpenGL kaj DirectX, MoltenVK kaj gfx-rs por labori sur Metalo).
    Aldonitaj etendaĵoj por plibonigi kongruon kun DirectX kaj HLSL
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, kaj SPIR-V efektivigas specifajn HLSL-kapablojn.

Planoj por la estonteco inkluzivas la disvolviĝon de etendaĵoj por maŝinlernado, radio-spurado, videokodigado kaj malkodado, subteno por VRS (ŝanĝebla-rapida ombrado) kaj Mesh-ombriloj.

Memoru, ke la Vulkan API rimarkinda radikale simpligante ŝoforojn, movante la generacion de GPU-komandoj al la aplikaĵo, la kapablo konekti sencimigajn tavolojn, unuigi la API por diversaj platformoj kaj uzi antaŭkompilitan mezan reprezenton de kodo por ekzekuto ĉe 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