Երկու տարվա աշխատանքից հետո գրաֆիկական ստանդարտների Khronos կոնսորցիումը հրապարակել է Vulkan 1.3 ճշգրտումը, որը սահմանում է API՝ GPU-ների գրաֆիկական և հաշվողական հնարավորություններին մուտք գործելու համար: Նոր ճշգրտումը ներառում է երկու տարվա ընթացքում կուտակված ուղղումներ և ընդլայնումներ: Նշվում է, որ Vulkan 1.3 ճշգրտման պահանջները նախատեսված են OpenGL ES 3.1 դասի գրաֆիկական սարքավորումների համար, որոնք կապահովեն նոր գրաֆիկական API-ի աջակցություն բոլոր GPU-ներում, որոնք աջակցում են Vulkan 1.2-ին։ Vulkan SDK գործիքները նախատեսվում է հրապարակել փետրվարի կեսերին։ Բացի հիմնական բնութագրից, նախատեսվում է առաջարկել լրացուցիչ ընդլայնումներ միջին և բարձրակարգ շարժական և աշխատասեղանի սարքերի համար, որոնք կաջակցվեն որպես «Vulkan Milestone» հրատարակության մաս:
Միևնույն ժամանակ, ներկայացվում է գրաֆիկական քարտերի և սարքի դրայվերների նոր բնութագրերի և լրացուցիչ ընդլայնումների աջակցությունն իրականացնելու ծրագիր: Intel-ը, AMD-ը, ARM-ը և NVIDIA-ն պատրաստվում են թողարկել Vulkan 1.3-ին աջակցող արտադրանք: Օրինակ, AMD-ը հայտարարեց, որ շուտով կաջակցի Vulkan 1.3-ին AMD Radeon RX Vega գրաֆիկական քարտերի շարքում, ինչպես նաև AMD RDNA ճարտարապետության վրա հիմնված բոլոր քարտերում: NVIDIA-ն պատրաստվում է հրապարակել վարորդներ՝ Vulkan 1.3-ի աջակցությամբ Linux-ի և Windows-ի համար: ARM-ը Մալիի GPU-ներին կավելացնի Vulkan 1.3-ի աջակցությունը:
Հիմնական նորամուծությունները.
- Կիրառվել է պարզեցված մատուցման անցագրերի (Rreamlining Render Passes, VK_KHR_dynamic_rendering) աջակցությունը, որը թույլ է տալիս սկսել արտապատկերումը՝ առանց ռենդերային անցումների և շրջանակային բուֆերային օբյեկտների ստեղծման:
- Ավելացվել են նոր ընդլայնումներ՝ գրաֆիկական խողովակաշարերի կազմման կառավարումը պարզեցնելու համար (խողովակաշար, գործողությունների մի շարք, որը վեկտորային գրաֆիկական պարզունակները և հյուսվածքները վերածում է պիքսելային ներկայացումների):
- VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - ավելացրեք լրացուցիչ դինամիկ վիճակներ՝ կրճատելու կազմված և կցված վիճակի օբյեկտների քանակը:
- VK_EXT_pipeline_creation_cache_control - Ապահովում է առաջադեմ վերահսկողություն, թե երբ և ինչպես են խողովակաշարերը կազմվում:
- VK_EXT_pipeline_creation_feedback - Տրամադրում է տեղեկատվություն կազմված խողովակաշարերի մասին՝ պրոֆիլավորումն ու վրիպազերծումը հեշտացնելու համար:
- Մի շարք գործառույթներ ընտրովիից տեղափոխվել են պարտադիրի։ Օրինակ, բուֆերային հղումների ներդրումը (VK_KHR_buffer_device_address) և Vulkan հիշողության մոդելը, որը սահմանում է, թե ինչպես կարող են զուգահեռ շղթաները մուտք գործել համօգտագործվող տվյալներ և համաժամացման գործողություններ, այժմ պարտադիր են:
- Մանրահատիկ ենթախմբի հսկողությունը (VK_EXT_subgroup_size_control) տրամադրվում է, որպեսզի վաճառողները կարողանան աջակցություն տրամադրել բազմաթիվ ենթախմբերի չափերին, իսկ մշակողները կարող են ընտրել իրենց պահանջած չափը:
- Տրվել է VK_KHR_shader_integer_dot_product ընդլայնումը, որը կարող է օգտագործվել մեքենայական ուսուցման շրջանակների աշխատանքը օպտիմալացնելու համար՝ կետային արտադրանքի գործողությունների ապարատային արագացման շնորհիվ:
- Ընդգրկված են ընդհանուր 23 նոր ընդլայնումներ.
- VK_KHR_copy_commands2
- VK_KHR_dynamic_rendering
- VK_KHR_format_feature_flags2
- VK_KHR_maintenance4
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_terminate_invocation
- VK_KHR_համաժամացում2
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_ֆորմատներ
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_image_ruustness
- VK_EXT_inline_uniform_block
- VK_EXT_pipeline_creation_cache_control
- VK_EXT_pipeline_creation_feedback
- Vk_ext_private_data
- VK_EXT_shader_demote_______________________________________________ ____________ #_ #_ #_ # # # # # # # # # # # # # # # # # # # # #__Ս_Սեյդերը__Կանաչելը
- 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_ֆորմատներ
- Ավելացրել է նոր օբյեկտի տեսակ VkPrivateDataSlot: Իրականացվել է 37 նոր հրամանատարություն և ավելի քան 60 կառույց։
- SPIR-V 1.6 ճշգրտումը թարմացվել է՝ սահմանելու միջանկյալ ստվերային ներկայացում, որն ունիվերսալ է բոլոր հարթակների համար և կարող է օգտագործվել ինչպես գրաֆիկայի, այնպես էլ զուգահեռ հաշվարկների համար: SPIR-V-ը ներառում է առանձին ստվերային կոմպիլյացիայի փուլի բաժանում միջանկյալ ներկայացման մեջ, որը թույլ է տալիս ստեղծել տարբեր բարձր մակարդակի լեզուների ճակատներ: Հիմնվելով տարբեր բարձր մակարդակի իրականացումների վրա՝ առանձին գեներացվում է մեկ միջանկյալ կոդ, որը կարող է օգտագործվել OpenGL, Vulkan և OpenCL դրայվերների կողմից՝ առանց ներկառուցված շեյդեր կոմպիլյատորի օգտագործման։
- Առաջարկվում է համատեղելիության պրոֆիլների հայեցակարգը: Google-ն առաջինն է, որը թողարկել է ելակետային պրոֆիլ Android պլատֆորմի համար, որը կհեշտացնի Vulkan-ի առաջադեմ հնարավորությունների աջակցության մակարդակը որոշելու Vulkan 1.0-ի սահմանաչափից դուրս սարքի վրա: Շատ սարքերի համար պրոֆիլի աջակցությունը կարող է տրամադրվել առանց OTA թարմացումների տեղադրման:
Հիշեցնենք, որ Vulkan API-ն աչքի է ընկնում դրայվերների արմատական պարզեցմամբ, GPU-ի հրամանների ստեղծման կիրառական կողմին փոխանցելով, վրիպազերծող շերտերը միացնելու ունակությամբ, տարբեր հարթակների համար API-ի միավորմամբ և նախապես կազմվածի օգտագործմամբ: Կոդերի միջանկյալ ներկայացում GPU-ի կողմից կատարման համար: Բարձր կատարողականություն և կանխատեսելիություն ապահովելու համար Vulkan-ը հավելվածներին տրամադրում է GPU-ի գործառնությունների անմիջական վերահսկողություն և GPU-ի բազմաշերտ աջակցում, ինչը նվազագույնի է հասցնում վարորդի ծախսերը և դարձնում վարորդի կողմից շատ ավելի պարզ և կանխատեսելի հնարավորություններ: Օրինակ, օպերացիաները, ինչպիսիք են հիշողության կառավարումը և սխալների կառավարումը, իրականացված OpenGL-ում վարորդի կողմից, տեղափոխվում են Vulkan հավելվածի մակարդակ:
Vulkan-ն ընդգրկում է բոլոր հասանելի հարթակները և ապահովում է մեկ API աշխատասեղանի, բջջայինի և համացանցի համար՝ թույլ տալով մեկ ընդհանուր API օգտագործել բազմաթիվ GPU-ներում և հավելվածներում: Շնորհիվ Vulkan-ի բազմաշերտ ճարտարապետության, որը նշանակում է գործիքներ, որոնք աշխատում են ցանկացած GPU-ի հետ, OEM-ները կարող են օգտագործել արդյունաբերության ստանդարտ գործիքներ՝ մշակման ընթացքում կոդի վերանայման, վրիպազերծման և պրոֆիլավորման համար: Շեյդերների ստեղծման համար առաջարկվում է նոր շարժական միջանկյալ ներկայացուցչություն՝ SPIR-V, որը հիմնված է LLVM-ի և OpenCL-ի հետ հիմնական տեխնոլոգիաների փոխանակման վրա: Սարքերը և էկրանները կառավարելու համար Vulkan-ն առաջարկում է WSI (Window System Integration) ինտերֆեյսը, որը լուծում է մոտավորապես նույն խնդիրները, ինչ EGL-ը OpenGL ES-ում: WSI-ի աջակցությունը հասանելի է Wayland-ում. Vulkan օգտագործող բոլոր հավելվածները կարող են աշխատել չփոփոխված Wayland սերվերների միջավայրում: WSI-ով աշխատելու հնարավորությունը տրամադրվում է նաև Android-ի, X11-ի (DRI3-ով), Windows-ի, Tizen-ի, macOS-ի և iOS-ի համար։
Source: opennet.ru