Lansarea Mesa 25.2, implementarea open-source a OpenGL și Vulkan

După trei luni de dezvoltare, a fost lansată versiunea open-source a API-ului OpenGL și Vulkan — Mesa 25.2.0. Prima versiune a ramurii Mesa 25.2.0 are un statut experimental — după finalizarea stabilizării codului, va fi lansată versiunea stabilă 25.2.1.

În Mesa 25.2, este disponibil suportul pentru API-ul grafic Vulkan 1.4 în driverele ANV pentru GPU-uri Intel, RADV pentru GPU-uri AMD, NVK pentru GPU-uri NVIDIA, Asahi pentru GPU-uri Apple, Turnip pentru GPU-uri Qualcomm, PanVK pentru GPU-uri ARM Mali, în rasterizatorul software lavapipe (lvp) și în modul emulator (vn). În driverele v3dv (GPU Broadcom VideoCore pentru Raspberry Pi 4+) și dzn (implementare a Vulkan peste Direct3D 12) este suportat Vulkan 1.0.

De asemenea, Mesa oferă suport complet pentru OpenGL 4.6 pentru driverele iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (GPU-uri Intel Gen 4-7 mai vechi), AMD (r600), zink, llvmpipe, virgl (GPU virtual Virgil3D pentru QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (stratul care permite funcționarea OpenGL peste DirectX 12) și asahi (GPU AGX utilizat în cipurile Apple M1 și M2). Suportul pentru OpenGL 4.5 este disponibil pentru GPU-uri NVIDIA (nvc0). Suportul pentru OpenGL 3.3 este prezent în driverele softpipe (rasterizator software) și nv50 (NVIDIA NV50). În driverele panfrost (GPU ARM Mali) și v3d (GPU Broadcom VideoCore), este suportat OpenGL 3.1.

Noutăți principale:

  • În driverul Vulkan PanVK pentru dispozitive cu GPU-uri ARM Mali bazate pe arhitectura V10, cum ar fi Mali-G610 și Mali-G310, a fost adăugat suportul pentru API-ul grafic Vulkan 1.4 (anterior era suportat Vulkan 1.2).
  • În driverul OpenGL r600 pentru GPU-uri AMD mai vechi (până la seria Radeon HD 7000 inclusiv), a fost adăugat suportul pentru API-ul grafic OpenGL 4.6 (anterior era suportat OpenGL 4.5).
  • În driverul Vulkan NVK, a fost adăugat suportul pentru GPU-uri NVIDIA bazate pe microarhitecturile Blackwell și Kepler (GTX 600/700). Pentru GPU-urile Blackwell este implementat suportul pentru Vulkan 1.4, iar pentru GPU-urile Kepler — API-ul Vulkan 1.2 (versiuni mai noi ale Vulkan nu sunt suportate din cauza limitărilor hardware). Pentru GPU-urile NVIDIA bazate pe microarhitectura Maxwell, este asigurată compatibilitatea completă cu Vulkan 1.4.
  • A fost optimizată funcționarea compilatorului de shaderi NAK, scris în Limbajul Rust și utilizat în driverul NVK. Printre dependențele driverului NVK a fost inclus pachetul crate rustc-hash, care a redus timpul de compilare a shaderilor cu aproximativ 12%.
  • Suportul OpenGL pentru GPU NVIDIA Maxwell, Pascal și Volta este activat din mod implicit cu driverul Nouveau pentru a utiliza driverul Zink în combinație cu driverul Vulkan NVK. Zink este, de asemenea, utilizat pentru a oferi suport OpenGL pe sistemele cu GPU Blackwell (nu se intenționează adăugarea suportului pentru GPU Blackwell în driverul OpenGL Nouveau). Zink oferă o implementare OpenGL 4.6 peste Vulkan, permițând obținerea unui OpenGL accelerat hardware pe dispozitivele care suportă API-ul Vulkan. Performanța Zink este aproape de performanța implementărilor native OpenGL.
  • Performanța driverului Vulkan Honeykrisp pentru procesoarele grafice livrate în cipurile Apple M1/M2 a fost semnificativ crescută.
  • Driverul Vulkan RADV (GPU AMD) și ANV (Intel) au adăugat suport pentru accelerarea hardware-a decodării video în format VP9. Această capacitate a fost realizată prin intermediul extensiei Vulkan VK_KHR_video_decode_vp9, pregătită în primăvara de către grupul de lucru Vulkan WG. Accelerarea hardware este disponibilă pentru GPU AMD începând cu GPU Navi 10 bazat pe arhitectura micro RDNA 1.0.
  • În driverul Vulkan RADV pentru GPU AMD pe bază de arhitecturi RDNA3 și RDNA4, a fost îmbunătățită performanța trasării razelor și a fost îmbunătățit suportul pentru tehnologia supersampling FSR 4 (FidelityFX Super Resolution). A fost adăugată posibilitatea de a configura prioritățile pentru coada de flux de comenzi (extensia OpenCL cl_khr_priority_hints).
  • În driverul OpenGL radeonsi pentru familiile vechi de GPU AMD Evergreen și Cayman, a fost implementat suportul pentru OpenGL 4.6. A fost adăugat suportul pentru memoria virtuală partajată (SVM, Shared Virtual Memory).
  • În driverul OpenGL Iris și în driverul Vulkan ANV a fost implementat suportul pentru GPU-uri utilizate în procesoarele Intel Wildcat Lake. În Iris și ANV, de asemenea, a fost anunțat suport stabil pentru GPU-urile Intel bazate pe arhitectura Xe3, utilizată în procesoarele Panther Lake. Suportul pentru familiile GPU Xe2 și Xe3 a fost îmbunătățit. În driverul Iris, a fost adăugat suport pentru memoria virtuală partajată (SVM, Shared Virtual Memory).
  • În driverul OpenGL freedreno a fost adăugat suport pentru GPU Adreno X1-45, utilizat în SoC Qualcomm Snapdragon X Plus.
  • Dezvoltarea driverului OpenCL Rusticl, scris în limbajul Rust și care a înlocuit driverul Clover, continuă. În Rusticl, a fost adăugat suport pentru SVM (Shared Virtual Memory), imagini în spațiul de culoare sRGB (formatele CL_sRGBA și CL_sBGRA), formatul FP16 (extensia OpenCL cl_khr_fp16 pentru driverii asahi, freedreno, llvmpipe, panfrost, radeonsi și zink).
  • A fost adăugat front-end Gallium3D MFT (Media Foundation Transform), care permite utilizarea driver-ului D3D12 (Direct3D 12) pentru implementarea altor API-uri grafice. A fost dezvoltat de Microsoft pentru WSL (Windows Subsystem for Linux).
  • Suportul pentru infrastructura DRI2 (Direct Rendering Infrastructure) a fost eliminat, înlocuit de interfața DRI3, care folosește DMA-BUF pentru a permite accesul direct la adaptoarele video. Motivul menționat este că interfața DRI3 există de mai bine de 10 ani, DRI2 este acum depășit, iar toate driverele GPU acceptate au implementat deja interfața DRI3.
  • Suportul pentru cele mai vechi metode de colaborare cu bufere a fost oprit — rămâne doar posibilitatea utilizării dma-buf.
  • Suportul pentru versiunile libX11 care nu asigurau o muncă sigură în aplicații multi-threaded a fost oprit. A rămas doar suportul pentru libX11 1.8 (aprilie 2022) și versiunile mai noi care folosesc apelul XInitThreads().
  • A fost declarată depășită și dezactivată implicit suportul pentru extensia EGL EGL_WL_bind_wayland_display, implementată pentru Wayland. Pentru a schimba pixelii buffer-elor între client și serverul Wayland se propune utilizarea protocolului Wayland linux_dmabuf. Pentru a readuce suportul, este necesară specificarea flag-ului „-Dlegacy-wayland=bind-wayland-display” în timpul compilării. Xwayland funcționează corect fără EGL_WL_bind_wayland_display începând cu versiunea 24.1 (mai 2024).
  • Driver-ul OpenCL Clover a fost eliminat. Pentru OpenCL, se recomandă utilizarea driver-ului RustiCL, care este mai funcțional și suportă mai multe versiuni de OpenCL.
  • În driver-ul ANV (Intel) a fost implementată extensia Vulkan:
    • VK_KHR_shader_bfloat16
  • În driver-ul RADV (AMD) au fost implementate extensiile Vulkan:
    • VK_KHR_shader_bfloat16
    • VK_KHR_robustness2
    • VK_EXT_zero_initialize_device_memory
    • VK_EXT_scalar_block_layout
    • VK_KHR_maintenance9
    • VK_KHR_unified_image_layouts
    • VK_KHR_shader_float8
    • VK_EXT_host_image_copy
  • În driver-ul NVK (NVIDIA) au fost implementate extensiile Vulkan:
    • VK_EXT_zero_initialize_device_memory
    • VK_KHR_cooperative_matrix
  • În driver-ul zink a fost implementată extensia Vulkan:
    • NV_timeline_semaphore
  • În driver-ul v3d (GPU Broadcom VideoCore pentru Raspberry Pi 4+) a fost implementată extensia OpenGL:
    • on v3d GL_ARB_blend_func_extended
  • În driver-ul panfrost au fost implementate extensiile OpenGL:
    • GL_KHR_texture_compression_astc_hdr
    • GL_ARB_shader_clock
    • GL_EXT_shader_realtime_clock
  • În driver-ul asahi (Apple) a fost implementată extensia OpenGL:
    • GL_KHR_texture_compression_astc_hdr
  • În driver-ul r600 (AMD) au fost implementate extensiile OpenGL
    • GL_EXT_window_rectangles
    • GL_EXT_shader_image_load_store
  • În driver-ul PanVK (GPU ARM Mali) au fost implementate extensiile Vulkan:
    • VK_EXT_vertex_input_dynamic_state/vertexInputDynamicState
    • VK_EXT_vertex_input_dynamic_state
    • VK_EXT_vertex_attribute_divisor
    • VK_KHR_maintenance4
    • VK_KHR_maintenance5
    • VK_EXT_direct_mode_display
    • VK_EXT_extended_dynamic_state
    • VK_KHR_shader_quad_control
    • VK_KHR_draw_indirect_count
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_terminate_invocation
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_shader_replicated_composites
    • VK_EXT_depth_bias_control
    • VK_EXT_primitive_topology_list_restart
    • VK_EXT_image_2d_view_of_3d
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_shader_subgroup_ballot
    • VK_EXT_shader_subgroup_vote
    • VK_KHR_load_store_op_none
    • VK_EXT_load_store_op_none
    • VK_EXT_inline_uniform_block
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_depth_clamp_zero_one
    • VK_KHR_depth_clamp_zero_one
    • VK_EXT_depth_clip_control
    • VK_KHR_unified_image_layouts
    • VK_KHR_vulkan_memory_model
    • VK_EXT_descriptor_indexing
    • VK_KHR_maintenance6
    • VK_KHR_shader_clock
    • VK_KHR_shader_atomic_int64
    • VK_KHR_calibrated_timestamps
    • VK_EXT_non_seamless_cube_map
    • VK_ARM_shader_core_properties
    • VK_KHR_host_image_copy

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster