Izdaja Mesa 21.2, brezplačne izvedbe OpenGL in Vulkan

Po treh mesecih razvoja je bila objavljena izdaja brezplačne implementacije API-jev OpenGL in Vulkan, Mesa 21.2.0. Prva izdaja veje Mesa 21.2.0 ima eksperimentalni status - po končni stabilizaciji kode bo izdana stabilna različica 21.2.1.

Mesa 21.2 ima polno podporo za OpenGL 4.6 za gonilnike 965, iris (Intel), radeonsi (AMD), zink in llvmpipe. Podpora za OpenGL 4.5 je na voljo za grafične procesorje AMD (r600) in NVIDIA (nvc0) ter OpenGL 4.3 za virgl (navidezni grafični procesor Virgil3D za QEMU/KVM). Podpora za Vulkan 1.2 je na voljo za kartice Intel in AMD, kot tudi v načinu emulatorja (vn), podpora za Vulkan 1.1 je na voljo za grafične procesorje Qualcomm in programski rasterizer lavapipe ter Vulkan 1.0 za grafične procesorje Broadcom VideoCore VI (Raspberry Pi 4).

Glavne novosti:

  • Gonilnik asahi OpenGL je vključen z začetno podporo za GPE, ki je dobavljen v čipih Apple M1. Gonilnik uporablja vmesnik Gallium in podpira večino funkcij OpenGL 2.1 in OpenGL ES 2.0, vendar še ni primeren za izvajanje večine iger. Koda gonilnika temelji na referenčnem gonilniku noop Gallium, z nekaj kode, prenesene iz gonilnika Panfrost, razvitega za GPU ARM Mali.
  • Gonilnik Crocus OpenGL je vključen s podporo za starejše grafične procesorje Intel (na osnovi mikroarhitektur Gen4-Gen7), ki jih gonilnik Iris ne podpira. Za razliko od gonilnika i965 novi gonilnik temelji na arhitekturi Gallium3D, ki naloge upravljanja pomnilnika predaja gonilniku DRI v jedru Linuxa in zagotavlja že pripravljen sledilnik stanja s podporo za predpomnilnik ponovne uporabe izhodnih objektov.
  • Gonilnik PanVk je vključen za zagotavljanje podpore za grafični API Vulkan za GPU ARM Mali Midgard in Bifrost. PanVk razvijajo zaposleni v Collabori in je postavljen kot nadaljevanje razvoja projekta Panfrost, ki zagotavlja podporo za OpenGL.
  • Gonilnik Panfrost za GPU Midgard (Mali T760 in novejši) in GPU Bifrost (Mali G31, G52, G76) podpira OpenGL ES 3.1. Nadaljnji načrti vključujejo delo za povečanje zmogljivosti na čipih Bifrost in podporo za GPU, ki temeljijo na arhitekturi Valhall (Mali G77 in novejši).
  • 32-bitne zgradbe za arhitekturo x86 uporabljajo navodila sse87 namesto navodil x2 za matematične izračune.
  • Gonilnik Nouveau nv50 za GPU NVIDIA GT21x (GeForce GT 2x0) podpira OpenGL ES 3.1.
  • Gonilnik TURNIP Vulkan in gonilnik Freedreno OpenGL, razvit za grafične procesorje Qualcomm Adreno, imata začetno podporo za grafične procesorje Adreno a6xx gen4 (a660, a635).
  • Gonilniku RADV (AMD) Vulkan je bila dodana podpora za primitivno izločanje z motorji senčil NGG (geometrija naslednje generacije). Implementirana možnost gradnje gonilnika RADV na platformi Windows z uporabo prevajalnika MSVC.
  • Gonilnik ANV Vulkan (Intel) in gonilnik Iris OpenGL sta pripravljala podporo za prihajajoče grafične kartice Intel Xe-HPG (DG2). To vključuje začetne funkcije, povezane s sledenjem žarkom, in podporo za senčenje za sledenje žarkom.
  • Gonilnik lavapipe z implementacijo programskega rasterista za Vulkan API (podobno kot llvmpipe, vendar za Vulkan, ki prevede klice Vulkan API v Gallium API) podpira način "wideLines" (zagotavlja podporo za črte s širino večjo od 1.0 ).
  • Implementirana podpora za dinamično odkrivanje in nalaganje alternativnih ozadij GBM (Generic Buffer Manager). Namen spremembe je izboljšati podporo za Wayland v sistemih z gonilniki NVIDIA.
  • Gonilnik Zink (izvedba API-ja OpenGL na vrhu Vulkana, ki vam omogoča strojno pospešen OpenGL, ko ima sistem gonilnike, omejene na podporo samo za API Vulkan) podpira razširitve OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax in GL_ARB_shader_clock. Dodani modifikatorji formata DRM (Upravitelj neposrednega upodabljanja, vključena razširitev VK_EXT_image_drm_format_modifier).
  • Dodana podpora za razširitve gonilnikov RADV (AMD), ANV (Intel) in lavapipe Vulkan:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_razširjeno_dinamično_stanje2 (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).

Vir: opennet.ru

Dodaj komentar