Izlaista Mesa 21.2 — OpenGL un Vulkan bezmaksas ieviešana

Pēc trīs mēnešu izstrādes tika publicēts OpenGL un Vulkan API bezmaksas ieviešanas izlaidums - Mesa 21.2.0. Mesa 21.2.0 filiāles pirmajam laidienam ir eksperimentāls statuss - pēc koda galīgās stabilizācijas tiks izlaista stabila versija 21.2.1.

Mesa 21.2 ietver pilnu OpenGL 4.6 atbalstu 965, iris (Intel), radeonsi (AMD), zink un llvmpipe draiveriem. OpenGL 4.5 atbalsts ir pieejams AMD (r600) un NVIDIA (nvc0) GPU, un OpenGL 4.3 atbalsts virgl (Virgil3D virtuālais GPU QEMU/KVM). Vulkan 1.2 atbalsts ir pieejams Intel un AMD kartēm, kā arī emulatora režīmā (vn), Vulkan 1.1 atbalsts ir pieejams Qualcomm GPU un lavapipe programmatūras rasterizeram, bet Vulkan 1.0 ir pieejams Broadcom VideoCore VI GPU (Raspberry Pi 4) .

Galvenie jauninājumi:

  • Asahi OpenGL draiveris ir iekļauts sākotnējā GPU atbalstam, kas iekļauts Apple M1 mikroshēmās. Draiveris izmanto Gallium saskarni un atbalsta lielāko daļu OpenGL 2.1 un OpenGL ES 2.0 funkciju, taču tas vēl nav piemērots lielākajai daļai spēļu. Draivera kods ir balstīts uz Gallium atsauces noop draiveri, un daži kodi ir pārnesti no Panfrost draivera, kas tiek izstrādāts ARM Mali GPU.
  • Crocus OpenGL draiveris ir iekļauts vecāku Intel GPU (pamatojoties uz Gen4-Gen7 mikroarhitektūrām), kurus neatbalsta Iris draiveris. Atšķirībā no i965 draivera, jaunais draiveris ir balstīts uz Gallium3D arhitektūru, kas nodod atmiņas pārvaldības uzdevumus DRI draiverim Linux kodolā un nodrošina gatavu stāvokļa izsekotāju ar atbalstu izvades objektu atkārtotas izmantošanas kešatmiņai.
  • Ir iekļauts PanVk draiveris, kas nodrošina atbalstu Vulkan grafikas API ARM Mali Midgard un Bifrost GPU. PanVk izstrādā Collabora darbinieki, un tas tiek pozicionēts kā Panfrost projekta attīstības turpinājums, kas nodrošina atbalstu OpenGL.
  • Panfrost draiveris Midgard GPU (Mali T760 un jaunāki) un Bifrost GPU (Mali G31, G52, G76) atbalsta OpenGL ES 3.1. Nākotnes plānos ietilpst darbs pie Bifrost mikroshēmu veiktspējas palielināšanas un GPU atbalsta ieviešana, pamatojoties uz Valhall arhitektūru (Mali G77 un jaunāka versija).
  • 32 bitu x86 būvējumos matemātiskajiem aprēķiniem tiek izmantotas sse87 instrukcijas, nevis x2 instrukcijas.
  • Nouveau nv50 draiveris NVIDIA GT21x GPU (GeForce GT 2×0) atbalsta OpenGL ES 3.1.
  • Vulkan draiverim TURNIP un OpenGL draiverim Freedreno, kas izstrādāti Qualcomm Adreno GPU, ir sākotnējais atbalsts Adreno a6xx gen4 GPU (a660, a635).
  • RADV (AMD) Vulkan draiveris ir pievienojis atbalstu primitīvai izkaušanai, izmantojot NGG (Next-Gen Geometry) ēnotāju dzinējus. Ir ieviesta iespēja izveidot RADV draiveri uz Windows platformas, izmantojot MSVC kompilatoru.
  • Sagatavošanas darbs ir veikts ANV Vulkan draiverī (Intel) un Iris OpenGL draiverī, lai nodrošinātu atbalstu gaidāmajām Intel Xe-HPG (DG2) grafiskajām kartēm. Tas ietver sākotnējās funkcijas, kas saistītas ar staru izsekošanu un staru izsekošanas ēnotāju atbalstu.
  • Lavapipe draiveris, kas ievieš programmatūras rasterizatoru Vulkan API (analogs llvmpipe, bet Vulkan, kas pārvērš Vulkan API izsaukumus uz Gallium API), atbalsta “wideLines” režīmu (nodrošina atbalstu līnijām, kuru platums pārsniedz 1.0).
  • Ir ieviests atbalsts alternatīvu GBM (Generic Buffer Manager) aizmugursistēmu dinamiskai atklāšanai un ielādei. Izmaiņu mērķis ir uzlabot Wayland atbalstu sistēmām ar NVIDIA draiveriem.
  • Zink draiveris (OpenGL API ieviešana Vulkan virspusē, kas ļauj iegūt aparatūras paātrinātu OpenGL, ja sistēmai ir draiveri, kas atbalsta tikai Vulkan API) atbalsta OpenGL paplašinājumus GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_ARBmin untexture_fil_ARBhaste. der_clock. Pievienoti DRM formāta modifikatori (tiešās renderēšanas pārvaldnieks, iespējots paplašinājums VK_EXT_image_drm_format_modifier).
  • Paplašinājumu atbalsts ir pievienots Vulkan draiveriem RADV (AMD), ANV (Intel) un lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_drm (RADV);
    • VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
    • VK_EXT_color_write_enable (RADV);
    • VK_EXT_acquire_drm_display (RADV, ANV);
    • VK_EXT_vertex_input_dynamic_state(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_atsevišķi_dziļuma_trafareti_izkārtojumi(lavapipe);
    • VK_EXT_atsevišķs_trafareta_lietojums(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Avots: opennet.ru

Pievieno komentāru