Објавување на Mesa 22.3, бесплатна имплементација на OpenGL и Vulkan

Објавено е објавувањето на бесплатната имплементација на 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), а во двигателот v1.0dv Vulkan 3 (GPU Broadcom VideoCore VI од Raspberry Pi 4).

Mesa, исто така, обезбедува целосна поддршка за OpenGL 4.6 за драјверите 965, iris (Intel), radeonsi (AMD), zink и llvmpipe. Поддршката за OpenGL 4.5 е достапна за графичките процесори AMD (r600), NVIDIA (nvc0) и Qualcomm Adreno (freedreno), OpenGL 4.3 за virgl (virgil3D виртуелен графички процесор за QEMU/KVM) и OpenGL 4.2 за д3d12 двигателот за организирање OpenGL (слој за работи на врвот на DirectX 12).

Главните иновации:

  • Возачот за freedreno за Qualcomm Adreno GPU обезбедува поддршка за OpenGL 4.5 графичкиот API, а драјверот за емулатор (vn) го поддржува Vulkan 1.3 API.
  • Драјверот Panfrost ја имплементира можноста за кеширање на шејдери на дискот и додава поддршка за графичкиот процесор Mali T620. Возачот е компатибилен со спецификацијата OpenGL 3.1 и OpenGL ES 3.1.
  • Возачот на RADV (AMD) Vulkan додаде поддршка за GFX11/RDNA3 графички процесори (серија Radeon RX 7000). Кодот за следење зраци е оптимизиран. Додадена е поддршка за формати на пиксели R8G8B8, B8G8R8 и R16G16B16, како и 64-битни вертекс-бафер формати. Додадена е поддршка за знамето extendedDynamicState2PatchControlPoints, кое ја одредува поддршката за наставката VK_EXT_extended_dynamic_state2. Интегриран Radeon Raytracing Analyzer.
  • Пакетот го вклучува двигателот Rusticle со имплементација на спецификацијата OpenCL 3.0, која ги дефинира API и екстензии на јазикот C за организирање на паралелно пресметување меѓу платформи. Возачот е напишан во Rust, развиен со помош на интерфејсот Галиум обезбеден во Mesa и делува како аналог на предниот дел на Clover OpenCL присутен во Mesa. Детелина е напуштена долго време, а рустиклот е позициониран како нејзина идна замена. Поддршката за Rust и rusticl е стандардно оневозможена и бара градба со експлицитни опции „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021“. Кога се гради, компајлерот rustc, генератор за врзување за врзување, LLVM, SPIRV-Tools и SPIRV-LLVM-Translator се потребни како дополнителни зависности.
  • Драјверот RadeonSI стандардно вклучува поддршка за рендерирање со повеќе нишки преку 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_mutable_descriptor_type за 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

Додадете коментар