Mesa 21.0, OpenGL:n ja Vulkanin ilmainen toteutus, julkaisu

OpenGL- ja Vulkan-sovellusliittymien ilmaisen toteutuksen - Mesa 21.0.0 -julkaisu esitellään. Mesa 21.0.0 -haaran ensimmäinen julkaisu on kokeellisessa tilassa - koodin lopullisen vakautuksen jälkeen julkaistaan ​​vakaa versio 21.0.1. Mesa 21.0:ssa on täysi OpenGL 4.6 -tuki 965-, iris- (Intel-), radeonsi- (AMD-), zink- ja llvmpipe-ajureille. OpenGL 4.5 -tuki on saatavilla AMD (r600) ja NVIDIA (nvc0) GPU:ille ja OpenGL 4.3 virglille (Virgil3D virtuaalinen GPU QEMU/KVM:lle). Vulkan 1.2 on tuettu Intel- ja AMD-korteille ja Vulkan 1.0 VideoCore VI:lle (Raspberry Pi 4).

Tärkeimmät innovaatiot:

  • Zink-ohjain (OpenGL API:n toteutus Vulkanin päällä) tukee OpenGL 4.6:ta. Zink antaa sinun saada laitteistokiihdytetyn OpenGL:n, jos järjestelmässäsi on ohjaimia, jotka rajoittuvat tukemaan vain Vulkan API:ta. Zinkin suorituskyky on lähellä alkuperäisten OpenGL-toteutusten suorituskykyä.
  • Llvmpipe-ohjain, joka on suunniteltu ohjelmistojen renderöintiin, tukee OpenGL 4.6:ta.
  • Freedreno-ohjain, jota käytetään Qualcomm-grafiikkaalijärjestelmässä, tukee OpenGL ES 6:aa Adreno a3.0xx GPU:lle.
  • Panfrost-ohjain GPU Midgardille (Mali-T7xx, Mali-T8xx) ja Bifrostille (Mali G3x, G5x, G7x) tukee OpenGL 3.1:tä sekä tukea OpenGL ES 3.0:lle GPU Bifrostille.
  • Radeonsi-ohjain tukee OpenGL-laajennuksia GL_EXT_demote_to_helper_invocation ja GL_NV_compute_shader_derivatives. Pelin "Counter-Strike: Global Offensive" optimointitila "mesa_glthread" on oletuksena käytössä, mikä mahdollistaa suorituskyvyn lisäämisen 10-20%. Toteutettu optimointi, joka vaikuttaa SPECViewPerf-testien läpäisyyn. Lisätty tuki Radeon GPU Profiler (RGP) -profilointityökalulle. Lisätty tuki Smart Access Memory -teknologialle Zen 3- ja RDNA 2 -grafiikkasuorittimille. Lisätty tuki HEVC SAO -koodereille (Sample Adaptive Offset, VCN2-, VCN2.5- ja VCN3-moottoreita tukeville GPU:ille) ja AV1-dekoodereille (RDNA 2/RX 6000 ja vain OpenMAX-liitännän kautta).
  • RADV Vulkan -ajuri (AMD-korteille) lisää tuen nopealle pakatulle matematiikalle (16-bittinen vektorointi) ja Sparse-muistille (mahdollistaa resurssien, kuten kuvien ja tekstuurien, epäjohdonmukaisuuden asettamisen ja liittämisen uudelleen erilaisiin muistivarauksiin). Optimoitu suorituskyky RX 6000 -sarjan korteille Lisätty VK_VALVE_mutable_descriptor_type- ja VK_KHR_fragment_shading_rate-laajennukset (vain RDNA2).
  • Intel ANV- ja Iris-ajurit lisäävät suorituskyvyn optimointia ja tarjoavat alustavan tuen Xe HPG -näytönohjainkorteissa toteutetuille Vulkan ray tracing -laajennuksille.
  • Lisätty tuki EGL_MESA_platform_xcb-laajennukselle, jonka avulla sovellukset voivat luoda EGL-resursseja X11-resursseista ilman Xlibiä.
  • Vulkan-ajuri V3DV, joka on kehitetty Broadcom BCM4 -siruun perustuvissa Raspberry Pi 2711 -korteissa käytettävälle VideoCore VI -grafiikkakiihdyttimelle, on lisännyt tuen Wayland WSI:lle (Windowing System Integration), joka mahdollistaa Vulkan API:n käytön Wayland-pohjaisista ympäristöistä.
  • OpenGL-kutsut DirectX 12 API:lle kääntävän kerroksen alkuperäinen toteutus otettiin käyttöön graafisten sovellusten työn organisoimiseksi WSL (Windows Subsystem for Linux) -ympäristössä. Lisäksi mukana on spirv_to_dxil-kirjasto, joka muuntaa SPIR-V-varjostimien väliesityksen Microsoftin kehittämäksi DXIL-kieleksi (DirectX Intermediate Language).
  • Uudelleen suunniteltu ja merkittävästi parannettu tuki Haiku OS:lle.
  • Poistettu glx_disable_oml_sync_control, glx_disable_sgi_video_sync ja glx_disable_ext_buffer_age asetukset driconfista.
  • Poistettu DRI1-tuki ja lopetettu DRI-ajureiden lataaminen Mesan versioista 8.0.
  • Poistettu Swrast-ajuri, rakennettu klassisen DRI-rajapinnan pohjalta ja tarkoitettu OpenGL-ohjelmiston renderöintiin (muut ohjelmiston renderöintiajurit llvmpipe ja softpipe ovat suorituskyvyltään ja toiminnallisuudeltaan huomattavasti swrastia edellä). Swrastin poistamista helpotti monien ratkaisemattomien ongelmien esiintyminen ja regressioiden esiintyminen huolimatta siitä, että tätä ajuria ei enää käytetä jakeluissa.
  • OSMesa API:n vanha klassinen versio on poistettu (Gallium-pohjainen OSMesa on jätetty), mikä mahdollistaa renderöinnin ei näytölle, vaan muistissa olevaan puskuriin.

    Lähde: opennet.ru

Lisää kommentti