Uch oylik ishlab chiqishdan so'ng, OpenGL va Vulkan API'larining ochiq kodli implementatsiyasi Mesa 26.1.0 chiqarildi. Mesa 26.1.0 filialining birinchi versiyasi eksperimental hisoblanadi; kod to'liq barqarorlashtirilgandan so'ng, barqaror versiyasi, 26.1.1, chiqariladi.
Mesa 26.1 Intel GPU’lari uchun ANV drayverlari, AMD GPU’lari uchun RADV, NVIDIA GPU’lari uchun NVK, Apple GPU’lari uchun HoneyKrisp (hk), Qualcomm GPU’lari uchun Turnip, ARM Mali GPU’lari uchun PanVK, rasterva rejimlari va dasturiy ta’minotlar uchun Vulkan 1.4 grafik API’ni qo‘llab-quvvatlaydi. (vn). v3dv (Raspberry Pi 4+ uchun Broadcom VideoCore GPU) va dzn (Vulkan over Direct3D 12) drayverlari Vulkan 1.0 ni, kk drayveri (KosmicKrisp, Vulkan over Metal) Vulkan 1.1 ni va pvr drayveri (Imagination PowerVR GPU) 1.2 ni qo‘llab-quvvatlaydi.
Mesa, shuningdek, iris (Intel Gen 4.6+ GPU), radeonsi (AMD), Crocus (eski Intel Gen8-Gen4 GPU), AMD (r7), zink, llvmpipe, virgl (QEMU/KVM uchun virgil600D virtual GPU), Adreno (Qualcom on3), freedreno (Qualcom on) uchun to'liq OpenGL 3 qo'llab-quvvatlaydi. DirectX 12) va asahi (Apple M12 va M1 chiplarida ishlatiladigan AGX GPU). OpenGL 2 qo'llab-quvvatlashi NVIDIA (nvc4.5) grafik protsessorlari uchun mavjud. OpenGL 0 qo'llab-quvvatlash dasturiy ta'minot (dasturiy ta'minot rasterizatori) va nv3.3 (NVIDIA NV50) drayverlarida mavjud. OpenGL 50 panfrost (ARM Mali GPU) va v3d (Broadcom VideoCore GPU) drayverlarida qo'llab-quvvatlanadi.
Asosiy innovatsiyalar:
- Intel GPU drayverlari (Iris, Crocus va ANV) endi VirtIO-GPU da mahalliy kontekstlardan foydalangan holda virtual mashinalardan to'g'ridan-to'g'ri GPUga kirishni qo'llab-quvvatlaydi. Mahalliy kontekstlar mehmon tizimida virtual GPU (virtio-gpu-gl) bilan ishlashda buyruqlarni haqiqiy xost GPUga to'g'ridan-to'g'ri uzatish orqali unumdorlikni oshiradi.
- Zink drayveri orqali PowerVR GPU'lari uchun OpenGL ES 2.0 qo'llab-quvvatlashi qo'shildi, bu Vulkan API'sini qo'llab-quvvatlaydigan qurilmalarda apparat tezlashtirilgan OpenGL'ni yoqadi.
- Rusticl OpenCL drayveri endi mahalliy C++ stdliblaridan foydalanadigan ilovalar bilan to'g'ri ishlashi uchun statik ravishda bog'langan C++ stdlibni talab qiladi.
- radeonsi drayveri (AMD) GL_NV_timeline_semaphore OpenGL kengaytmasini qo'llab-quvvatladi.
- Panfrost drayveri (ARM Mali) endi OpenGL kengaytmasini GL_EXT_shader_image_load_store ni qo'llab-quvvatlaydi.
- v3d drayveri (Broadcom VideoCore) endi GL_ARB_sample_shading OpenGL kengaytmasini qo'llab-quvvatlaydi.
- Vulkan kengaytmalari uchun qo'shimcha yordam:
- Panvk uchun VK_ARM_scheduling_controls
- Panvk uchun VK_EXT_acquire_drm_display
- Panvk uchun VK_EXT_astc_decode_mode
- Panvk uchun VK_EXT_attachment_feedback_loop_dynamic_state
- Panvk uchun VK_EXT_attachment_feedback_loop_layout
- Lavapipe uchun VK_EXT_blend_operation_advanced
- Panvk uchun VK_EXT_color_write_enable
- Panvk uchun VK_EXT_shartli_renderlash
- Panvk uchun VK_EXT_depth_clamp_control
- RADV uchun VK_EXT_descriptor_heap ('export RADV_EXPERIMENTAL=heap' ni o'rnatayotganda)
- v3dv uchun VK_EXT_hdr_metadata
- pvr uchun VK_EXT_image_drm_format_modifier
- Panvk uchun VK_EXT_image_view_min_lod
- Panvk uchun VK_EXT_legacy_dithering
- Panvk uchun VK_EXT_map_memory_joylashtirildi
- Panvk uchun VK_EXT_nested_command_buffer
- Pvr uchun VK_EXT_non_seamless_cube_map
- RADV, NVK, Turnip, ANV, Honeykrisp, panvk uchun VK_EXT_present_timing
- RADV uchun VK_EXT_primitive_restart_index
- Panvk uchun VK_EXT_rgba10x6_formats
- Panvk uchun VK_EXT_shader_atomic_float
- Panvk uchun VK_EXT_shader_stencil_export
- Panvk uchun VK_EXT_zero_initialize_device_memory
- nvk, RADV/GFX8+ uchun VK_KHR_copy_memory_indirect
- RADV uchun VK_KHR_device_address_buyruqlari
- Panvk uchun VK_{KHR,EXT}_{surface,swapchain}_maintenance1
- Panvk uchun VK_KHR_get_display_properties2
- Panvk uchun VK_KHR_get_surface_capabilities2
- RADV uchun VK_KHR_internally_synchronized_queues
- PVR uchun VK_KHR_maintenance4
- PVR uchun VK_KHR_pipeline_executable_properties
- Panvk, v3dv uchun VK_KHR_present_id
- VK_KHR_present_wait panvk, v3dv
- PVR uchun VK_KHR_sampler_ycbcr_conversion
- PVR uchun VK_KHR_shader_integer_dot_product
- Panvk uchun VK_KHR_shader_untyped_pointers
- Panvk uchun VK_KHR_swapchain_mutable_format
- Sholg'om uchun VK_QCOM_rasm_qayta ishlash
- Panvk uchun VK_VALVE_mutable_descriptor_type
- RADV uchun VK_VALVE_shader_mixed_float_dot_product (Vega20, Navi14, RDNA2+)
- Amalga oshirilgan OpenCL kengaytmalari:
- cl_khr_subbroup_ballot for asahi, iris, llvmpipe, radeonsi va zink
- cl_xr_subgroup_clustered_reduce asahi, llvmpipe, radeonsi va zink uchun
- cl_khr_subgroup_extended_types for asahi, iris, llvmpipe, radeonsi va zink
- cl_khr_subgroup_non_uniform_arithmetic for asahi, llvmpipe, radeonsi va zink
- cl_khr_subgroup_non_uniform_vote for asahi, iris, llvmpipe, radeonsi va zink
- cl_khr_subgroup_rotate asahi, llvmpipe va zink uchun
- QEMU uchun virtual GPUni amalga oshiradigan VirGL drayveri endi texnik xizmat ko'rsatilmaydi va agar kimdir uning texnik xizmatini o'z zimmasiga olishga tayyor bo'lmasa, olib tashlanadi.
Manba: opennet.ru
