انتشار اجرای رایگان OpenGL و Vulkan API - Mesa 22.3.0 - منتشر شد. اولین نسخه از شعبه Mesa 22.3.0 وضعیت آزمایشی دارد - پس از تثبیت نهایی کد، نسخه پایدار 22.3.1 منتشر خواهد شد.
Mesa 22.3 پشتیبانی از API گرافیکی Vulkan 1.3 را در درایورهای anv برای پردازندههای گرافیکی Intel، radv برای پردازندههای گرافیکی AMD، tu برای پردازندههای گرافیکی Qualcomm و در حالت شبیهساز (vn) اضافه میکند. پشتیبانی از Vulkan 1.1 در نرمافزار lavapipe (lvp) و Vulkan 1.0 در درایور v3dv (برای پردازنده گرافیکی Broadcom VideoCore VI در Raspberry Pi 4) پیادهسازی شده است.
Mesa همچنین پشتیبانی کامل از OpenGL 4.6 را برای درایورهای 965، iris (اینتل)، radeonsi (AMD)، zink و llvmpipe ارائه میدهد. پشتیبانی از OpenGL 4.5 برای پردازندههای گرافیکی AMD (r600)، NVIDIA (nvc0) و Qualcomm Adreno (freedreno)، OpenGL 4.3 برای virgl (پردازنده گرافیکی مجازی Virgil3D برای QEMU/KVM) و OpenGL 4.2 برای درایور d3d12 (یک لایه OpenGL که بر روی DirectX 12 اجرا میشود) در دسترس است.
نوآوری های اصلی:
- درایور freedreno برای پردازنده گرافیکی Qualcomm Adreno از API گرافیکی OpenGL 4.5 پشتیبانی میکند و درایور شبیهساز (vn) از API Vulkan 1.3 پشتیبانی میکند.
- درایور Panfrost قابلیت ذخیره سازی سایه زن (shader caching) را روی دیسک پیادهسازی میکند و پشتیبانی از پردازنده گرافیکی Mali T620 را اضافه میکند. این درایور با مشخصات OpenGL 3.1 و OpenGL ES 3.1 سازگار است.
- درایور RADV Vulkan (AMD) پشتیبانی از پردازنده گرافیکی GFX11/RDNA3 (سری Radeon RX 7000) را اضافه میکند. کد رهگیری پرتو بهینه شده است. پشتیبانی از فرمتهای پیکسلی R8G8B8، B8G8R8 و R16G16B16 و همچنین فرمتهای بافر ورتکس ۶۴ بیتی اضافه شده است. پشتیبانی از پرچم extendedDynamicState2PatchControlPoints اضافه شده است که پشتیبانی از افزونه VK_EXT_extended_dynamic_state2 را امکانپذیر میکند. Radeon Raytracing Analyzer یکپارچه شده است.
- این بسته شامل درایور Rusticl است که مشخصات OpenCL 3.0 را پیادهسازی میکند، که APIها و افزونههای زبان C را برای محاسبات موازی بین پلتفرمی تعریف میکند. این درایور با زبان Rust نوشته شده است، با استفاده از رابط Gallium ارائه شده توسط Mesa توسعه داده شده است و به عنوان یک آنالوگ از رابط کاربری Clover OpenCL Mesa عمل میکند. Clover مدتهاست که کنار گذاشته شده است و rusticl به عنوان جایگزین آینده آن قرار گرفته است. پشتیبانی از Rust و rusticl به طور پیشفرض غیرفعال است و نیاز به ساخت صریح با گزینههای "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" دارد. وابستگیهای اضافی مورد نیاز در طول ساخت شامل کامپایلر rustc، bindgen، LLVM، SPIRV-Tools و SPIRV-LLVM-Translator است.
- درایور Radeon SI به طور پیشفرض از طریق OpenGL، پشتیبانی از رندر چند رشتهای را فعال کرده است.
- معرفی Mesa-DB، نوع جدیدی از حافظه نهان سایهزن که دادهها را در یک فایل واحد ذخیره میکند.
- پشتیبانی اضافه شده برای برنامه های افزودنی OpenGL:
- GL_ARB_shader_clock برای llvmpipe.
- GL_KHR_blend_equation_advanced_coherent برای روی.
- GL_NV_shader_atomic_float برای llvmpipe.
- پشتیبانی اضافه شده برای افزونه های Vulkan:
- VK_KHR_shader_clock برای لوله گدازه.
- VK_EXT_attachment_feedback_loop_layout برای RADV، لوله گدازه.
- VK_KHR_global_priority برای RADV.
- VK_EXT_load_store_op_none برای RADV.
- نوع توصیفگر قابل تغییر VK_EXT برای RADV.
- VK_EXT_shader_atomic_float برای lvp.
- VK_EXT_shader_atomic_float2 برای lvp.
- VK_EXT_image_robustness برای v3dv.
- VK_EXT_extended_dynamic_state3 برای لولههای گدازهای، RADV و ANV.
- VK_EXT_extended_dynamic_state2 برای RADV.
- VK_EXT_pipeline_robustness برای v3dv.
- VK_EXT_mesh_shader برای ANV.
منبع: opennet.ru
