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

Екі жылдық жұмыстан кейін графикалық стандарттар консорциумы Khronos Vulkan 1.3 спецификациясын жариялады, ол графикалық графика мен графикалық процессорлардың есептеу мүмкіндіктеріне қол жеткізу үшін API анықтайды. Жаңа спецификация екі жыл бойы жинақталған түзетулер мен кеңейтімдерді қамтиды. Vulkan 1.3 спецификациясының талаптары OpenGL ES 3.1 сыныпты графикалық жабдыққа арналған, бұл Vulkan 1.2 қолдайтын барлық графикалық процессорларда жаңа графикалық 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 қолдауын қосады.

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

  • Жеңілдетілген рендеринг өтулерін қолдау (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_динамикалық_көрсету
    • VK_KHR_пішімі_мүмкіндік_жалаулары2
    • VK_KHR_maintenance4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_семантикалық емес_ақпарат
    • VK_KHR_shader_terminate_шақыру
    • VK_KHR_синхрондау2
    • VK_KHR_zero_initialize_workgroup_жады
    • VK_EXT_4444_ форматтары
    • VK_EXT_кеңейтілген_динамикалық_мемлекет
    • VK_EXT_кеңейтілген_динамикалық_күй2
    • VK_EXT_суреттің_түстігі
    • VK_EXT_inline_uniform_block
    • VK_EXT_құбыр_жасау_кэш_контрол
    • VK_EXT_құбырды_жасау_кері байланысы
    • VK_EXT_жеке_мәліметтер
    • VK_EXT_shader_demote_to_helper_inotocation
    • VK_EXT_ішкі топтың_өлшемін_басқару
    • VK_EXT_texel_buffer_ignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_құралдар_ақпараты
    • 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 жағында орындауға арналған кодтың аралық көрінісі. Жоғары өнімділік пен болжамдылықты қамтамасыз ету үшін Вулкан қолданбаларды 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 үшін де қамтамасыз етілген.

Ақпарат көзі: opennet.ru

пікір қалдыру