Mesa 21.0 kaleratzea, OpenGL eta Vulkan-en doako inplementazioa

OpenGL eta Vulkan APIen doako inplementazioaren bertsioa aurkezten da - Mesa 21.0.0. Mesa 21.0.0 adarraren lehen bertsioak egoera esperimentala du; kodea behin betiko egonkortu ondoren, 21.0.1 bertsio egonkorra kaleratuko da. Mesa 21.0-k OpenGL 4.6-ren laguntza osoa du 965, iris (Intel), radeonsi (AMD), zink eta llvmpipe kontrolatzaileetarako. OpenGL 4.5 laguntza eskuragarri dago AMD (r600) eta NVIDIA (nvc0) GPUetarako, eta OpenGL 4.3 virgl-erako (Virgil3D GPU birtuala QEMU/KVMrako). Vulkan 1.2 Intel eta AMD txarteletarako onartzen da, eta Vulkan 1.0 VideoCore VIrako (Raspberry Pi 4).

Berrikuntza nagusiak:

  • Zink kontrolatzaileak (OpenGL APIaren inplementazioa Vulkan-en gainean) OpenGL 4.6rako laguntza eskaintzen du. Zink-ek hardware-azeleratutako OpenGL lortzeko aukera ematen dizu zure sisteman Vulkan APIa soilik onartzera mugatzen diren kontrolatzaileak badituzu. Zink-en errendimendua OpenGL jatorrizko inplementazioenetik hurbil dago.
  • Softwarea errendatzeko diseinatutako llvmpipe kontrolatzaileak OpenGL 4.6 onartzen du.
  • Freedreno kontrolatzaileak, Qualcomm txip-en azpisistema grafikorako erabiltzen dena, OpenGL ES 6 onartzen du Adreno a3.0xx GPUrako.
  • GPU Midgard (Mali-T7xx, Mali-T8xx) eta Bifrost (Mali G3x, G5x, G7x) Panfrost kontrolatzaileak OpenGL 3.1 onartzen du, baita OpenGL ES 3.0 GPU Bifrost-erako ere.
  • Radeonsi kontrolatzaileak GL_EXT_demote_to_helper_invocation eta GL_NV_compute_shader_derivatives OpenGL luzapenak onartzen ditu. "Counter-Strike: Global Offensive" jokorako "mesa_glthread" optimizazio modua gaituta dago lehenespenez, eta horrek errendimendua % 10-20 handitzeko aukera ematen du. SPECViewPerf probak gainditzean eragina duten optimizazioak ezarri dira. Radeon GPU Profiler (RGP) profila tresnarako laguntza gehitu da. Zen 3 eta RDNA 2 GPUetarako Smart Access Memory teknologiarako laguntza gehitu da. HEVC SAO kodetzaileentzako (Sample Adaptive Offset, VCN2, VCN2.5 eta VCN3 motorrak onartzen dituzten GPUentzako) eta AV1 deskodetzaileentzako (RDNA 2/RX 6000rako eta OpenMAX interfazearen bidez soilik) laguntza gehitu da.
  • RADV Vulkan kontrolatzaileak (AMD txarteletarako) Rapid paketatutako matematikarako (16 biteko bektorializazioa) eta Sparse memoriarako laguntza gehitzen du (irudiak eta testurak bezalako baliabideak modu koherentean ezartzeko eta memoria-esleipen desberdinetara berriro lotzeko aukera ematen du). RX 6000 serieko txartelen errendimendu optimizatua. VK_VALVE_mutable_descriptor_type eta VK_KHR_fragment_shading_rate luzapenak gehitu dira (RDNA2 soilik).
  • Intel ANV eta Iris gidariek errendimendu optimizazioak gehitzen dituzte eta Xe HPG txartel grafikoetan inplementatutako Vulkan izpien trazadura luzapenetarako hasierako laguntza eskaintzen dute.
  • EGL_MESA_platform_xcb luzapenerako euskarria gehitu da, aplikazioei X11 baliabideetatik EGL baliabideak sortzeko aukera ematen diena Xlib erabili gabe.
  • Vulkan V3DV kontrolatzaileak, Broadcom BCM4 txipan oinarritutako Raspberry Pi 2711 plaketan erabiltzen den VideoCore VI azeleragailu grafikorako garatua, Wayland WSI (Windowing System Integration) euskarria gehitu du, eta horrek Wayland-en oinarritutako inguruneetatik Vulkan APIra sartzeko aukera ematen du.
  • OpenGL deiak DirectX 12 APIra itzultzen dituen geruzaren hasierako ezarpena WSL (Windows Subsystem for Linux) ingurunean aplikazio grafikoen lana antolatzeko hartu zen. Horrez gain, spirv_to_dxil liburutegia sartzen da SPIR-V itzaltzaileen bitarteko irudikapena Microsoft-ek garatutako DXIL (DirectX Intermediate Language) bihurtzeko.
  • Haiku OSrako laguntza birdiseinatu eta nabarmen hobetu da.
  • glx_disable_oml_sync_control, glx_disable_sgi_video_sync eta glx_disable_ext_buffer_age ezarpenak kendu dira driconf-etik.
  • DRI1-rako euskarria kendu eta DRI kontrolatzaileak kargatzeari utzi dio Mesa-ren 8.0-tik beherako bertsioetatik.
  • Swrast kontrolatzailea kendu da, DRI interfaze klasikoan oinarrituta eraikia eta OpenGL software errendatzera zuzendua (llvmpipe eta softpipe software errendatzeko gainerako kontrolatzaileak nabarmen aurreratu dira errendimendu eta funtzionaltasun aldetik). Swrast-a kentzea konpondu gabeko arazo asko egoteak eta erregresioak agertzeak erraztu zuen, kontrolatzaile hau banaketan jada erabiltzen ez den arren.
  • OSMesa APIaren bertsio klasiko zaharra kendu egin da (Gallium oinarritutako OSMesa geratzen da), eta horrek pantailara ez, memoriako buffer batean errendatzea ahalbidetzen du.

    Iturria: opennet.ru

Gehitu iruzkin berria