Kolmen kuukauden kehitystyön jälkeen on julkaistu OpenGL- ja Vulkan-APIen avoimen lähdekoodin toteutus, Mesa 26.1.0. Mesa 26.1.0 -haaran ensimmäinen versio on kokeellinen; kun koodi on täysin vakiintunut, julkaistaan vakaa versio, 26.1.1.
Mesa 26.1 lisää tuen Vulkan 1.4 -grafiikka-API:lle ANV-ajureissa Intel-näytönohjaimille, RADV:lle AMD-näytönohjaimille, NVK:lle NVIDIA-näytönohjaimille, HoneyKrispille (hk) Apple-näytönohjaimille, Turnipille Qualcomm-näytönohjaimille, PanVK:lle ARM Mali -näytönohjaimille, lavapipe-ohjelmistorasterisoijalle (lvp) ja emulaattoritilalle (vn). v3dv- (Broadcom VideoCore GPU Raspberry Pi 4+:lle) ja dzn- (Vulkan over Direct3D 12) -ajurit tukevat Vulkan 1.0:aa, kk-ajuri (KosmicKrisp, Vulkan over Metal) tukee Vulkan 1.1:tä ja pvr-ajuri (Imagination PowerVR GPU) tukee Vulkan 1.2:ta.
Mesa tarjoaa myös täyden OpenGL 4.6 -tuen seuraaville: iris (Intel Gen 8+ -näytönohjaimet), radeonsi (AMD), Crocus (vanhemmat Intel Gen4-Gen7 -näytönohjaimet), AMD (r600), zink, llvmpipe, virgl (virgil3D virtuaalinen näytönohjain QEMU/KVM:lle), freedreno (Qualcomm Adreno), d3d12 (OpenGL-kerros DirectX 12:n päällä) ja asahi (AGX-näytönohjain, jota käytetään Apple M1- ja M2-siruissa). OpenGL 4.5 -tuki on saatavilla NVIDIA (nvc0) -näytönohjaimille. OpenGL 3.3 -tuki on saatavilla softpipe- (ohjelmistorasterisoija) ja nv50 (NVIDIA NV50) -ajureissa. OpenGL 3 on tuettu panfrost (ARM Mali GPU) ja v3.1d (Broadcom VideoCore GPU) -ajureissa.
Tärkeimmät innovaatiot:
- Intel-grafiikkasuorittimien (Iris, Crocus ja ANV) ajurit tukevat nyt suoraa grafiikkasuorittimen käyttöä virtuaalikoneista VirtIO-GPU:n natiivien kontekstien avulla. Natiivit kontekstit parantavat suorituskykyä työskenneltäessä virtuaalisen grafiikkasuorittimen (virtio-gpu-gl) kanssa vierasjärjestelmässä lähettämällä komentoja suoraan varsinaiselle isäntägrafiikkasuorittimelle.
- PowerVR-näytönohjaimille on lisätty Zink-ajurin kautta OpenGL ES 2.0 -tuki, joka mahdollistaa laitteistokiihdytetyn OpenGL:n laitteissa, jotka tukevat Vulkan API:a.
- OpenCL-ajuri rusticl vaatii nyt staattisesti linkitetyn C++-stdlib-kirjaston toimiakseen oikein sovellusten kanssa, jotka käyttävät natiiveja C++-stdlib-kirjastoja.
- radeonsi-ajuriin (AMD) on lisätty tuki GL_NV_timeline_semaphore OpenGL -laajennukselle.
- Panfrost-ajuri (ARM Mali) tukee nyt OpenGL-laajennusta GL_EXT_shader_image_load_store.
- v3d-ajuri (Broadcom VideoCore) tukee nyt GL_ARB_sample_shading OpenGL-laajennusta.
- Lisätty tuki Vulkan-laajennuksille:
- VK_ARM_scheduling_controls panvk:lle
- VK_EXT_acquire_drm_display panvk:lle
- VK_EXT_astc_decode_mode panvk:lle
- VK_EXT_attachment_feedback_loop_dynamic_state panvk:lle
- VK_EXT_attachment_feedback_loop_layout panvk:lle
- VK_EXT_blend_operation_advanced laavaputkelle
- VK_EXT_color_write_enable panvk:lle
- VK_EXT_conditional_renderointi panvk:lle
- VK_EXT_depth_clamp_control panvk:lle
- VK_EXT_descriptor_heap RADV:lle (kun asetetaan 'export RADV_EXPERIMENTAL=heap')
- VK_EXT_hdr_metadata v3dv:lle
- VK_EXT_image_drm_format_modifier PVR:lle
- VK_EXT_image_view_min_lod panvk:lle
- VK_EXT_legacy_dithering panvk:lle
- VK_EXT_map_memory_placed panvk:lle
- VK_EXT_nested_command_buffer panvk:lle
- VK_EXT_non_seamless_cube_map PVR:lle
- VK_EXT_present_timing RADV:lle, NVK:lle, Turnipille, ANV:lle, Honeykrispille ja panvk:lle
- VK_EXT_primitive_restart_index RADV:lle
- VK_EXT_rgba10x6_formats panvk:lle
- VK_EXT_shader_atomic_float panvk:lle
- VK_EXT_shader_stencil_export panvk:lle
- VK_EXT_zero_initialize_device_memory panvk:lle
- VK_KHR_copy_memory_indirect nvk:lle, RADV/GFX8+:lle
- VK_KHR_device_address_commands for RADV
- VK_{KHR,EXT}_{pinta,vaihtoketju}_ylläpito1 panvk:lle
- VK_KHR_get_display_properties2 panvk:lle
- VK_KHR_get_surface_capabilities2 panvk:lle
- VK_KHR_internally_synchronized_queues RADV:lle
- VK_KHR_maintenance4 PVR:lle
- VK_KHR_pipeline_executable_properties PVR:lle
- VK_KHR_present_id panvk:lle, v3dv
- VK_KHR_present_wait for panvk, v3dv
- VK_KHR_sampler_ycbcr_conversion PVR:lle
- VK_KHR_shader_integer_dot_product PVR:lle
- VK_KHR_shader_untyped_pointers panvk:lle
- VK_KHR_swapchain_mutable_format panvk:lle
- VK_QCOM_image_processing Turnipille
- VK_VALVE_mutable_descriptor_type panvk:lle
- VK_VALVE_shader_mixed_float_dot_product RADV:lle (Vega20, Navi14, RDNA2+)
- Toteutetut OpenCL-laajennukset:
- cl_khr_subgroup_ballot Asahille, Irisille, llvmpipelle, radeonsille ja zinkille
- cl_xr_subgroup_clustered_reduce Asahille, llvmpipelle, radeonsille ja zinkille
- cl_khr_subgroup_extended_types asahille, irikselle, llvmpipelle, radeonsille ja zinkille
- cl_khr_subgroup_non_uniform_arithmetic Asahille, llvmpipelle, radeonsille ja zinkille
- cl_khr_subgroup_non_uniform_vote Asahin, Irisin, llvmpipen, radeonsin ja zinkin puolesta
- cl_khr_subgroup_rotate Asahi-, llvmpipe- ja zink-ohjelmille
- VirGL-ajuria, joka toteuttaa virtuaalisen näytönohjaimen QEMU:lle, ei enää ylläpidetä ja se poistetaan, ellei joku ole halukas ottamaan sen ylläpitoa hoitaakseen.
Lähde: opennet.ru
