Графикалык стандарт Vulkan 1.3 жарыяланды

Эки жылдык иштен кийин графикалык стандарттар консорциуму Khronos Vulkan 1.3 спецификациясын жарыялады, ал графикалык графикага жана GPUлардын эсептөө мүмкүнчүлүктөрүнө жетүү үчүн API аныктайт. Жаңы спецификация эки жыл бою топтолгон оңдоолорду жана кеңейтүүлөрдү камтыйт. Vulkan 1.3 спецификациясынын талаптары OpenGL ES 3.1 классындагы графикалык жабдуулар үчүн иштелип чыккандыгы белгиленип, бул Vulkan 1.2 колдогон бардык GPUларда жаңы графикалык API колдоону камсыздайт. Vulkan SDK куралдарын февраль айынын орто ченинде чыгаруу пландаштырылууда. Негизги спецификациядан тышкары, "Vulkan Milestone" басылмасынын бир бөлүгү катары колдоого алынуучу орто жана жогорку класстагы мобилдик жана рабочий түзмөктөр үчүн кошумча кеңейтүүлөрдү сунуштоо пландаштырылууда.

Ошол эле учурда жаңы спецификацияны колдоону жана графикалык карталарда жана түзмөк драйверлеринде кошумча кеңейтүүлөрдү ишке ашыруу планы сунушталат. Intel, AMD, ARM жана NVIDIA Vulkan 1.3 колдогон өнүмдөрдү чыгарууга даярданып жатышат. Мисалы, AMD жакында Vulkan 1.3ти AMD Radeon RX Vega сериясындагы графикалык карталарда, ошондой эле AMD RDNA архитектурасына негизделген бардык карталарда колдой турганын жарыялады. NVIDIA Linux жана Windows үчүн Vulkan 1.3 колдоосу менен драйверлерди чыгарууга даярданып жатат. ARM Vulkan 1.3 колдоону Мали GPUларына кошот.

Негизги инновациялар:

  • Жөнөкөйлөштүрүлгөн рендеринг өтмөктөрүн колдоо (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_копия_буйруктары2
    • VK_KHR_dynamic_rendering
    • VK_KHR_форматынын_өзгөчөлүгү_желектери2
    • 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_ кеңейтилген_динамикалык_штат
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_сүрөттүн_обустуулугу
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_провод_түзүү_пикир
    • VK_EXT_купуя_дайын
    • VK_EXT_shader_demote_to_helper_inococation
    • VK_EXT_подгруппанын_өлчөмүн_көзөмөлдөө
    • 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 1.0 спецификациясынан тышкары түзмөктө өркүндөтүлгөн Vulkan мүмкүнчүлүктөрүн колдоо деңгээлин аныктоону жеңилдетет. Көпчүлүк түзмөктөр үчүн профилдик колдоо OTA жаңыртууларын орнотпостон эле берилиши мүмкүн.

Эске сала кетсек, Vulkan API драйверлерди түп-тамырынан бери жөнөкөйлөштүрүү, GPU буйруктарын генерациялоону колдонмо тарапка өткөрүп берүү, мүчүлүштүктөрдү оңдоо катмарларын туташтыруу мүмкүнчүлүгү, ар кандай платформалар үчүн APIди бириктирүү жана алдын ала компиляцияны колдонуу менен айырмаланат. GPU тарабында аткаруу үчүн коддун ортодогу өкүлчүлүгү. Жогорку өндүрүмдүүлүктү жана алдын ала айтууну камсыз кылуу үчүн, Vulkan GPU операцияларын түздөн-түз башкаруу менен тиркемелерди камсыз кылат жана GPU көп агымы үчүн жергиликтүү колдоону камсыздайт, бул драйвердин ашыкча чыгымын азайтып, айдоочу тараптын мүмкүнчүлүктөрүн алда канча жөнөкөй жана алдын ала айтууга болот. Мисалы, драйвер тарабында OpenGLде ишке ашырылган эс тутумду башкаруу жана каталарды иштетүү сыяктуу операциялар Вулкандагы колдонмо деңгээлине жылдырылат.

Vulkan бардык жеткиликтүү платформаларды камтыйт жана рабочий, мобилдик жана веб үчүн бирдиктүү API менен камсыз кылып, бир жалпы APIди бир нече GPU жана тиркемелерде колдонууга мүмкүндүк берет. Вулкандын көп катмарлуу архитектурасынын аркасында, бул ар кандай GPU менен иштей турган куралдарды билдирет, OEMлер иштеп чыгуу учурунда кодду карап чыгуу, мүчүлүштүктөрдү оңдоо жана профилдөө үчүн тармактык стандарттык куралдарды колдоно алышат. Шейдерлерди түзүү үчүн LLVMге негизделген жана OpenCL менен негизги технологияларды бөлүшүүгө негизделген жаңы көчмө орто өкүлчүлүк, SPIR-V сунушталат. Түзмөктөрдү жана экрандарды башкаруу үчүн, Vulkan OpenGL ESдеги EGL сыяктуу көйгөйлөрдү чечүүчү WSI (Терезе системасынын интеграциясы) интерфейсин сунуштайт. WSI колдоо Wayland кутучасынан тышкары жеткиликтүү - Vulkan колдонгон бардык колдонмолор өзгөрүлбөгөн Wayland серверлеринин чөйрөсүндө иштей алат. WSI аркылуу иштөө мүмкүнчүлүгү Android, X11 (DRI3 менен), Windows, Tizen, macOS жана iOS үчүн да каралган.

Source: opennet.ru

Комментарий кошуу