Efter tre måneders udvikling er open source-implementeringen af OpenGL- og Vulkan API'erne, Mesa 26.1.0, blevet udgivet. Den første udgivelse af Mesa 26.1.0-grenen er eksperimentel; efter at koden er blevet fuldt stabiliseret, vil den stabile version, 26.1.1, blive udgivet.
Mesa 26.1 tilføjer understøttelse af Vulkan 1.4 grafik-API'et i ANV-driverne til Intel GPU'er, RADV til AMD GPU'er, NVK til NVIDIA GPU'er, HoneyKrisp (hk) til Apple GPU'er, Turnip til Qualcomm GPU'er, PanVK til ARM Mali GPU'er, lavapipe software rasterizer (lvp) og emulatortilstand (vn). v3dv (Broadcom VideoCore GPU til Raspberry Pi 4+) og dzn (Vulkan over Direct3D 12) driverne understøtter Vulkan 1.0, kk-driveren (KosmicKrisp, Vulkan over Metal) understøtter Vulkan 1.1, og pvr-driveren (Imagination PowerVR GPU) understøtter Vulkan 1.2.
Mesa tilbyder også fuld OpenGL 4.6-understøttelse til iris (Intel Gen 8+ GPU'er), radeonsi (AMD), Crocus (ældre Intel Gen4-Gen7 GPU'er), AMD (r600), zink, llvmpipe, virgl (virgil3D virtuel GPU til QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (OpenGL-lag oven på DirectX 12) og asahi (AGX GPU brugt i Apple M1- og M2-chips). OpenGL 4.5-understøttelse er tilgængelig for NVIDIA (nvc0) GPU'er. OpenGL 3.3-understøttelse er tilgængelig i softpipe- (software rasterizer) og nv50 (NVIDIA NV50) driverne. OpenGL 3 understøttes i panfrost- (ARM Mali GPU) og v3.1d (Broadcom VideoCore GPU) driverne.
Vigtigste innovationer:
- Drivere til Intel GPU'er (Iris, Crocus og ANV) understøtter nu direkte GPU-adgang fra virtuelle maskiner ved hjælp af native kontekster i VirtIO-GPU. Native kontekster forbedrer ydeevnen, når man arbejder med en virtuel GPU (virtio-gpu-gl) i et gæstesystem ved at sende kommandoer direkte til den faktiske værts-GPU.
- OpenGL ES 2.0-understøttelse er blevet tilføjet til PowerVR GPU'er via Zink-driveren, hvilket muliggør hardwareaccelereret OpenGL på enheder, der understøtter Vulkan API.
- Rusticl OpenCL-driveren kræver nu en statisk linket C++ stdlib for at fungere korrekt med applikationer, der bruger native C++ stdlibs.
- Radeonsi-driveren (AMD) har tilføjet understøttelse af OpenGL-udvidelsen GL_NV_timeline_semaphore.
- Panfrost-driveren (ARM Mali) understøtter nu OpenGL-udvidelsen GL_EXT_shader_image_load_store.
- v3d-driveren (Broadcom VideoCore) understøtter nu OpenGL-udvidelsen GL_ARB_sample_shading.
- Tilføjet understøttelse af Vulkan-udvidelser:
- VK_ARM_scheduling_controls for panvk
- VK_EXT_acquire_drm_display til panvk
- VK_EXT_astc_decode_mode for panvk
- VK_EXT_attachment_feedback_loop_dynamic_state for panvk
- VK_EXT_attachment_feedback_loop_layout til panvk
- VK_EXT_blend_operation_advanced til lavapipe
- VK_EXT_color_write_enable for panvk
- VK_EXT_conditional_rendering for panvk
- VK_EXT_depth_clamp_control til panvk
- VK_EXT_descriptor_heap for RADV (når 'export RADV_EXPERIMENTAL=heap' indstilles)
- VK_EXT_hdr_metadata til v3dv
- VK_EXT_image_drm_format_modifier til pvr
- VK_EXT_image_view_min_lod til panvk
- VK_EXT_legacy_dithering for panvk
- VK_EXT_map_memory_placed til panvk
- VK_EXT_nested_command_buffer til panvk
- VK_EXT_non_seamless_cube_map til pvr
- VK_EXT_present_timing for RADV, NVK, Turnip, ANV, Honeykrisp, panvk
- VK_EXT_primitive_restart_index til RADV
- VK_EXT_rgba10x6_formater til panvk
- VK_EXT_shader_atomic_float til panvk
- VK_EXT_shader_stencil_export til panvk
- VK_EXT_zero_initialize_device_memory til panvk
- VK_KHR_copy_memory_indirect til nvk, RADV/GFX8+
- VK_KHR_device_address_commands til RADV
- VK_{KHR,EXT}_{surface,swapchain}_maintenance1 for panvk
- VK_KHR_get_display_properties2 for panvk
- VK_KHR_get_surface_capabilities2 til panvk
- VK_KHR_internally_synchronized_queues til RADV
- VK_KHR_maintenance4 til pvr
- VK_KHR_pipeline_executable_properties for pvr
- VK_KHR_present_id for panvk, v3dv
- VK_KHR_present_wait for panvk, v3dv
- VK_KHR_sampler_ycbcr_conversion til pvr
- VK_KHR_shader_integer_dot_product til PVR
- VK_KHR_shader_untyped_pointers til panvk
- VK_KHR_swapchain_mutable_format til panvk
- VK_QCOM_image_processing for Turnip
- VK_VALVE_mutable_descriptor_type for panvk
- VK_VALVE_shader_mixed_float_dot_product til RADV (Vega20, Navi14, RDNA2+)
- OpenCL-udvidelser implementeret:
- cl_khr_subgroup_ballot til Asahi, Iris, llvmpipe, Radeonsi og Zink
- cl_xr_subgroup_clustered_reduce til Asahi, llvmpipe, Radeonsi og Zink
- cl_khr_subgroup_extended_types til Asahi, Iris, llvmpipe, Radeonsi og Zink
- cl_khr_subgroup_non_uniform_arithmetic til Asahi, llvmpipe, Radeonsi og Zink
- cl_khr_subgroup_non_uniform_vote for Asahi, Iris, llvmpipe, Radeonsi og Zink
- cl_khr_subgroup_rotate for asahi, llvmpipe og zink
- VirGL-driveren, som implementerer en virtuel GPU til QEMU, vedligeholdes ikke længere og vil blive fjernet, medmindre nogen er villig til at overtage dens vedligeholdelse.
Kilde: opennet.ru
