Izdanje Mesa 21.2, besplatna implementacija OpenGL-a i Vulkana

Nakon tri mjeseca razvoja, objavljeno je izdanje besplatne implementacije OpenGL-a i Vulkan API-ja - Mesa 21.2.0. Prvo izdanje grane Mesa 21.2.0 ima eksperimentalni status - nakon konačne stabilizacije koda, bit će objavljena stabilna verzija 21.2.1.

Mesa 21.2 uključuje punu podršku za OpenGL 4.6 za 965, iris (Intel), radeonsi (AMD), zink i llvmpipe drajvere. Podrška za OpenGL 4.5 je dostupna za AMD (r600) i NVIDIA (nvc0) GPU, a podrška za OpenGL 4.3 za virgl (Virgil3D virtuelni GPU za QEMU/KVM). Podrška za Vulkan 1.2 je dostupna za Intel i AMD kartice, kao i u režimu emulatora (vn), Vulkan 1.1 podrška je dostupna za Qualcomm GPU i softverski rasterizator lavapipe, a Vulkan 1.0 je dostupan za Broadcom VideoCore VI GPU (Raspberry Pi 4) .

Glavne inovacije:

  • Asahi OpenGL drajver je uključen sa početnom podrškom za GPU uključen u Apple M1 čipove. Drajver koristi Gallium interfejs i podržava većinu karakteristika OpenGL 2.1 i OpenGL ES 2.0, ali još uvek nije pogodan za pokretanje većine igara. Kod drajvera je zasnovan na Gallium referentnom noop drajveru, sa nekim kodom prenetim iz Panfrost drajvera koji se razvija za ARM Mali GPU.
  • Crocus OpenGL drajver je uključen uz podršku za starije Intel GPU-ove (bazirane na Gen4-Gen7 mikroarhitekturama), koje Iris drajver ne podržava. Za razliku od i965 drajvera, novi drajver je baziran na Gallium3D arhitekturi, koja predaje zadatke upravljanja memorijom DRI drajveru u Linux kernelu i obezbeđuje gotov praćenje stanja sa podrškom za ponovnu upotrebu keša izlaznih objekata.
  • PanVk drajver je uključen, pruža podršku za Vulkan grafički API za ARM Mali Midgard i Bifrost GPU-ove. PanVk razvijaju zaposleni u Collabori i pozicioniran je kao nastavak razvoja Panfrost projekta koji pruža podršku za OpenGL.
  • Panfrost drajver za Midgard GPU (Mali T760 i noviji) i Bifrost GPU (Mali G31, G52, G76) podržava OpenGL ES 3.1. Budući planovi uključuju rad na povećanju performansi na Bifrost čipovima i implementaciju GPU podrške bazirane na Valhall arhitekturi (Mali G77 i noviji).
  • 32-bitne x86 verzije koriste sse87 instrukcije umjesto x2 instrukcija za matematičke proračune.
  • Nouveau nv50 drajver za NVIDIA GT21x GPU (GeForce GT 2×0) podržava OpenGL ES 3.1.
  • Vulkan drajver TURNIP i OpenGL drajver Freedreno, razvijeni za Qualcomm Adreno GPU, imaju početnu podršku za Adreno a6xx gen4 GPU (a660, a635).
  • RADV (AMD) Vulkan drajver je dodao podršku za primitivno izbacivanje pomoću NGG (Next-Gen Geometry) shader motora. Implementirana je mogućnost izrade RADV drajvera na Windows platformi pomoću MSVC kompajlera.
  • Pripremni radovi su obavljeni u ANV Vulkan drajveru (Intel) i Iris OpenGL drajveru kako bi se obezbedila podrška za predstojeće Intel Xe-HPG (DG2) grafičke kartice. Ovo uključuje početne karakteristike vezane za praćenje zraka i podršku za shadere za praćenje zraka.
  • Lavapipe drajver, koji implementira softverski rasterizator za Vulkan API (analogno llvmpipe-u, ali za Vulkan, koji prevodi Vulkan API pozive u Gallium API), podržava režim “wideLines” (omogućava podršku za linije širine veće od 1.0).
  • Implementirana je podrška za dinamičko otkrivanje i učitavanje alternativnih GBM (Generic Buffer Manager) backenda. Promjena ima za cilj poboljšanje Wayland podrške na sistemima sa NVIDIA drajverima.
  • Zink drajver (implementacija OpenGL API-ja na vrhu Vulkana, koji vam omogućava da dobijete hardverski ubrzani OpenGL ako sistem ima drajvere ograničene na podršku samo Vulkan API-ja) podržava OpenGL ekstenzije GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_shader_vote, GL_B_Cht. Dodati modifikatori DRM formata (Direct Rendering Manager, VK_EXT_image_drm_format_modifier ekstenzija omogućena).
  • Podrška za ekstenzije je dodata Vulkan drajverima RADV (AMD), ANV (Intel) i lavapipe:
    • VK_EXT_provokirajući_vrh (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_separate_depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

izvor: opennet.ru

Dodajte komentar