Vulkan 1.2 grafik standarti chop etildi

Grafik standartlarni ishlab chiquvchi Khronos konsorsiumi,
chop spetsifikatsiya Vulkan 1.2, bu GPUning grafik va hisoblash imkoniyatlariga kirish uchun APIni belgilaydi. Yangi spetsifikatsiya ikki yil davomida to'plangan tuzatishlarni o'z ichiga oladi va kattalashtirish. Vulkanning yangi versiyasini qo'llab-quvvatlovchi haydovchilar allaqachon mavjud ozod qilindi Intel kompaniyasi, AMD, ARM, Imagination Technologies va NVIDIA. Mesa haydovchilar uchun Vulkan 1.2-ni qo'llab-quvvatlaydi RADV (AMD kartalari) va ANV (Intel). Vulkan 1.2 qo'llab-quvvatlashi tuzatuvchida ham amalga oshiriladi RenderDoc 1.6, LunarG Vulkan SDK va bir qator misollar Vulkan-namunalar.

asosiy yangiliklar:

  • Sizga olib kelgan keng foydalanishga tayyor bo'lgunga qadar shader dasturlash tilini amalga oshirish HLSL, Microsoft tomonidan DirectX uchun ishlab chiqilgan. Vulkan-da HLSL-ni qo'llab-quvvatlash Vulkan va DirectX-ga asoslangan ilovalarda bir xil HLSL shaderlaridan foydalanishga imkon beradi, shuningdek, HLSL-dan SPIR-V-ga tarjima qilishni soddalashtiradi. Shaderlarni kompilyatsiya qilish uchun standart kompilyatordan foydalanish tavsiya etiladi
    DxC, Microsoft tomonidan 2017 yilda ochilgan va LLVM texnologiyasiga asoslangan. Vulkanni qo'llab-quvvatlash alohida backend orqali amalga oshiriladi, bu sizga HLSLni SPIR-V shaderlarining oraliq vakiliga aylantirish imkonini beradi. Amalga oshirish nafaqat barcha o'rnatilgan imkoniyatlarni qamrab oladi
    HLSL, jumladan, matematik turlar, boshqaruv oqimlari, funktsiyalar, to'plamlar, resurs turlari, nom maydonlari, Shader Model 6.2, tuzilmalar va usullar, shuningdek, NVIDIA'dan VKRay kabi Vulkanga xos kengaytmalardan foydalanishga imkon beradi. Vulkan tepasida HLSL rejimida Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey va Tomb Raider kabi o'yinlarning ishini tashkil qilish mumkin edi.

    Vulkan 1.2 grafik standarti chop etildi

  • Spetsifikatsiya yangilandi SPIR-V 1.5, bu barcha platformalar uchun universal bo'lgan va grafik va parallel hisoblash uchun ishlatilishi mumkin bo'lgan shaderlarning oraliq tasvirini belgilaydi.
    SPIR-V alohida shader kompilyatsiya bosqichini oraliq vakillikka ajratishni o'z ichiga oladi, bu sizga turli yuqori darajadagi tillar uchun frontendlarni yaratish imkonini beradi. Turli xil yuqori darajadagi ilovalar asosida alohida oraliq kod yaratiladi, undan OpenGL, Vulkan va OpenCL drayverlari o'rnatilgan shader kompilyatoridan foydalanmasdan foydalanishlari mumkin.

    Vulkan 1.2 grafik standarti chop etildi

  • Asosiy Vulkan API 23 ta kengaytmani o'z ichiga oladi, ular unumdorlikni oshiradi, renderlash sifatini yaxshilaydi va rivojlanishni soddalashtiradi. Qo'shilgan kengaytmalar orasida:
    • Xronologik semaforlar (Xronologiya semafori), xost va qurilma navbatlari bilan sinxronlashni birlashtiruvchi (alohida VkFence va VkSemaphore primitivlaridan foydalanmasdan, qurilma va xost o'rtasida ko'p yo'nalishli sinxronizatsiya uchun bitta primitivdan foydalanish imkonini beradi). Yangi semaforlar bir nechta iplar bo'ylab kuzatilishi va yangilanishi mumkin bo'lgan monoton ravishda ortib borayotgan 64 bitli qiymat bilan ifodalanadi.
      Vulkan 1.2 grafik standarti chop etildi

    • Shaderlarda kamaytirilgan aniqlik bilan raqamli turlardan foydalanish imkoniyati;
    • HLSL-ga mos keladigan xotira tartibini tanlash;
    • Tizim xotirasi va GPU xotirasining umumiy virtual maydonidan foydalangan holda shaderlar uchun mavjud resurslar soni bo'yicha cheklovni olib tashlaydigan bog'lanmagan resurslar (bog'lanmagan);
    • Rasmiy xotira modeli, bu bir vaqtning o'zida ish zarralari umumiy ma'lumotlarga va sinxronizatsiya operatsiyalariga qanday kirishi mumkinligini belgilaydi;
    • Deskriptorni indekslash bir nechta shaderlarda tartib identifikatorlarini qayta ishlatish;
    • Bufer havolalari.

    Qo'shilgan kengaytmalarning to'liq ro'yxati:

  • Yuklangan 50 dan ortiq yangi tuzilmalar va 13 ta funksiyalar;
  • Oddiy maqsadli platformalar uchun spetsifikatsiyaning qisqartirilgan versiyalari tayyorlangan, ular hali barcha kengaytmalari qo'llab-quvvatlanmaydigan platformalarda ishni soddalashtiradi va Vulkan API-ning asosiy imkoniyatlarini tanlab faollashtirmasdan bajarishga imkon beradi.
  • Boshqa grafik API bilan portativlikni ta'minlash bo'yicha loyiha ustida ish davom etmoqda. Masalan, Vulkan OpenGL tarjimasiga ruxsat beruvchi kengaytmalarni taklif qiladi (Zink), OpenCL (clspv, clvk), OpenGL ES (QO'LQOP, Angle) va DirectX (DXVK, vkd3d) Vulkan API orqali, shuningdek, aksincha, Vulkan o'zining mahalliy yordamisiz platformalarda ishlashiga imkon beradi (gfx-rs ΠΈ Kuli OpenGL va DirectX ustida ishlash uchun, MoltenVK va Metall ustida ishlash uchun gfx-rs).
    DirectX va HLSL bilan moslikni yaxshilash uchun qo'shilgan kengaytmalar
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_chuqur_stencil_layouts HLIR-V va SP-ning o'ziga xos imkoniyatlari.

Kelajakdagi rejalarga mashinani o'rganish, nurlarni kuzatish, video kodlash va dekodlash, VRS (o'zgaruvchan tezlikli soya) va Mesh shaderlarini qo'llab-quvvatlash uchun kengaytmalarni ishlab chiqish kiradi.

Eslatib o'tamiz, Vulkan API ajoyib drayverlarni tubdan soddalashtirish, GPU buyruqlarini ishlab chiqarishni dastur tomoniga o'tkazish, disk raskadrovka qatlamlarini ulash imkoniyati, turli platformalar uchun APIni birlashtirish va GPU tomonida bajarish uchun kodning oldindan tuzilgan oraliq ko'rinishidan foydalanish. Yuqori unumdorlik va prognozlilikni ta'minlash uchun Vulkan ilovalarni GPU operatsiyalarini to'g'ridan-to'g'ri boshqarish va GPU multi-threading uchun mahalliy qo'llab-quvvatlash bilan ta'minlaydi, bu esa drayverlarga qo'shimcha xarajatlarni kamaytiradi va haydovchi tomoni imkoniyatlarini ancha sodda va oldindan aytib bo'ladigan qiladi. Masalan, haydovchi tomonida OpenGL-da amalga oshirilgan xotirani boshqarish va xatolarni qayta ishlash kabi operatsiyalar Vulkandagi dastur darajasiga o'tkaziladi.

Vulkan barcha mavjud platformalarni qamrab oladi va ish stoli, mobil va veb uchun yagona API taqdim etadi, bu bitta umumiy APIni bir nechta GPU va ilovalarda ishlatishga imkon beradi. Vulkanning ko'p qatlamli arxitekturasi tufayli, ya'ni har qanday GPU bilan ishlaydigan vositalar, OEMlar ishlab chiqish jarayonida kodni ko'rib chiqish, disk raskadrovka va profil yaratish uchun sanoat standartidagi vositalardan foydalanishi mumkin. Sheyderlarni yaratish uchun LLVM va OpenCL bilan asosiy texnologiyalarni almashishga asoslangan yangi portativ oraliq vakillik, SPIR-V taklif etiladi. Qurilmalar va ekranlarni boshqarish uchun Vulkan WSI (Window System Integration) interfeysini taklif qiladi, bu OpenGL ES da EGL bilan bir xil muammolarni hal qiladi. WSI-ni qo'llab-quvvatlash Wayland-da mavjud - Vulkan-dan foydalanadigan barcha ilovalar o'zgartirilmagan Wayland serverlari muhitida ishlashi mumkin. WSI orqali ishlash imkoniyati Android, X11 (DRI3 bilan), Windows, Tizen, macOS va iOS uchun ham taqdim etilgan.

Manba: opennet.ru

a Izoh qo'shish