Mesa 22.3 versiyasi, OpenGL va Vulkanning bepul amalga oshirilishi

OpenGL va Vulkan API-larining bepul amalga oshirilishi - Mesa 22.3.0 - nashr etildi. Mesa 22.3.0 filialining birinchi versiyasi eksperimental maqomga ega - kodning yakuniy barqarorlashuvidan so'ng barqaror 22.3.1 versiyasi chiqariladi.

Mesa 22.3 Vulkan 1.3 grafik API-ni Intel GPU'lari uchun anv, AMD GPU'lari uchun radv, Qualcomm GPU'lari uchun tu va emulyator rejimida (vn) qo'llab-quvvatlaydi. Vulkan 1.1-ni qo'llab-quvvatlash lavapipe (lvp) dasturiy ta'minot rasterizatorida va Vulkan 1.0 v3dv drayverida (Raspberry Pi 4-dan Broadcom VideoCore VI GPU) amalga oshiriladi.

Mesa shuningdek, 4.6, iris (Intel), radeonsi (AMD), zink va llvmpipe drayverlarini to'liq OpenGL 965 qo'llab-quvvatlaydi. OpenGL 4.5 qo‘llab-quvvatlashi AMD (r600), NVIDIA (nvc0) va Qualcomm Adreno (freedreno) grafik kartalari, virgl uchun OpenGL 4.3 (QEMU/KVM uchun virgil3D virtual GPU) va d4.2d3 drayverlari uchun OpenGL 12 (OpenG ni tashkil qilish qatlami) uchun mavjud. DirectX 12 ustida ishlash).

Asosiy innovatsiyalar:

  • Qualcomm Adreno GPU'lari uchun freedreno drayveri OpenGL 4.5 grafik API-ni qo'llab-quvvatlaydi va emulyator drayveri (vn) Vulkan 1.3 API-ni qo'llab-quvvatlaydi.
  • Panfrost drayveri diskdagi shaderlarni keshlash qobiliyatini amalga oshiradi va Mali T620 GPU-ni qo'llab-quvvatlaydi. Drayv OpenGL 3.1 spetsifikatsiyasi va OpenGL ES 3.1 bilan mos keladi.
  • RADV (AMD) Vulkan drayveri GFX11/RDNA3 GPU (Radeon RX 7000 seriyali) uchun qo'shimcha qo'llab-quvvatladi. Nurlarni kuzatish uchun kod optimallashtirildi. R8G8B8, B8G8R8 va R16G16B16 piksel formatlarini, shuningdek, 64 bitli vertex bufer formatlarini qo'llab-quvvatlash qo'shildi. VK_EXT_extended_dynamic_state2 kengaytmasini qo'llab-quvvatlashni aniqlaydigan kengaytirilganDynamicState2PatchControlPoints bayrog'i uchun qo'shimcha yordam qo'shildi. Radeon Raytracing Analyzer o'rnatilgan.
  • Paketga OpenCL 3.0 spetsifikatsiyasi amalga oshirilgan Rusticle drayveri kiradi, u API va C tilining kengaytmalarini o'zaro platforma parallel hisoblashni tashkil qilish uchun belgilaydi. Drayv Rust tilida yozilgan bo'lib, Mesa-da taqdim etilgan Gallium interfeysi yordamida ishlab chiqilgan va Mesa-da mavjud Clover OpenCL frontendining analogi sifatida ishlaydi. Clover uzoq vaqtdan beri tark etilgan va kelajakda uning o'rnini rustikl egallagan. Rust va rusticl uchun qoʻllab-quvvatlash sukut boʻyicha oʻchirib qoʻyilgan va “-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021” ochiq variantlari bilan tuzilishni talab qiladi. Qurilishda rustc kompilyatori, bog'lovchi biriktiruvchi generator, LLVM, SPIRV-Tools va SPIRV-LLVM-Translator qo'shimcha bog'liqliklar sifatida talab qilinadi.
  • RadeonSI drayveri sukut bo'yicha OpenGL orqali ko'p tarmoqli renderlashni qo'llab-quvvatlaydi.
  • Ma'lumotlarni bitta faylda saqlaydigan yangi turdagi shader keshi - Mesa-DB taqdim etildi.
  • OpenGL kengaytmalari uchun qo'shimcha yordam:
    • llvmpipe uchun GL_ARB_shader_clock.
    • Sink uchun GL_KHR_blend_equation_advanced_cogerent.
    • llvmpipe uchun GL_NV_shader_atomic_float.
  • Vulkan kengaytmalari uchun qo'shimcha yordam:
    • Lavapipe uchun VK_KHR_shader_soati.
    • RADV, lavapipe uchun VK_EXT_attachment_feedback_loop_layout.
    • RADV uchun VK_KHR_global_priority.
    • RADV uchun VK_EXT_load_store_op_none.
    • RADV uchun VK_EXT_mutable_descriptor_type.
    • lvp uchun VK_EXT_shader_atomic_float.
    • lvp uchun VK_EXT_shader_atomic_float2.
    • v3dv uchun VK_EXT_image_robustness.
    • Lavapipe, RADV va ANV uchun VK_EXT_extended_dynamic_state3.
    • RADV uchun VK_EXT_extended_dynamic_state2.
    • v3dv uchun VK_EXT_pipeline_robustness.
    • ANV uchun VK_EXT_mesh_shader.

Manba: opennet.ru

a Izoh qo'shish