OpenGL və Vulkanın pulsuz tətbiqi olan Mesa 26.1-nin buraxılışı

Üç aylıq inkişafdan sonra OpenGL və Vulkan API-lərinin açıq mənbəli tətbiqi olan Mesa 26.1.0 buraxıldı. Mesa 26.1.0 filialının ilk buraxılışı eksperimentaldır; kod tam sabitləşdirildikdən sonra stabil versiya olan 26.1.1 buraxılacaq.

Mesa 26.1, Vulkan 1.4 qrafik API-ni Intel GPU-ları üçün ANV sürücülərinə, AMD GPU-ları üçün RADV, NVIDIA GPU-ları üçün NVK, Apple GPU-ları üçün HoneyKrisp (hk), Qualcomm GPU-ları üçün Turnip, ARM Mali GPU-ları üçün PanVK və proqram təminatı, rastlayıcı rejimlər üçün əlavə edir. (vn). v3dv (Raspberry Pi 4+ üçün Broadcom VideoCore GPU) və dzn (Direct3D 12 üzərində Vulkan) sürücüləri Vulkan 1.0-ı, kk sürücüsü (KosmicKrisp, Vulkan over Metal) Vulkan 1.1-i, pvr sürücüsü (Imagination PowerVR GPU) isə 1.2-ni dəstəkləyir.

Mesa həmçinin iris (Intel Gen 4.6+ GPU), radeonsi (AMD), Crocus (köhnə Intel Gen8-Gen4 GPU), AMD (r7), sink, llvmpipe, virgl (QEMU/KVM üçün virgil600D virtual GPU), Adreno (Qualcom on3), freedreno (Qual3GPU) üçün tam OpenGL 12 dəstəyi təqdim edir. DirectX 12) və asahi (Apple M1 və M2 çiplərində istifadə olunan AGX GPU). OpenGL 4.5 dəstəyi NVIDIA (nvc0) GPU-ları üçün mövcuddur. OpenGL 3.3 dəstəyi softpipe (proqram rasterizatoru) və nv50 (NVIDIA NV50) drayverlərində mövcuddur. OpenGL 3 panfrost (ARM Mali GPU) və v3.1d (Broadcom VideoCore GPU) sürücülərində dəstəklənir.

Əsas yeniliklər:

  • Intel GPU-ları (Iris, Crocus və ANV) üçün drayverlər artıq VirtIO-GPU-da yerli kontekstlərdən istifadə edərək virtual maşınlardan birbaşa GPU girişini dəstəkləyir. Yerli kontekstlər, qonaq sistemində virtual GPU (virtio-gpu-gl) ilə işləyərkən əmrləri birbaşa faktiki ana GPU-ya ötürməklə performansı artırır.
  • Vulkan API-ni dəstəkləyən cihazlarda aparatla sürətləndirilmiş OpenGL-i aktivləşdirən Zink drayveri vasitəsilə PowerVR GPU-ları üçün OpenGL ES 2.0 dəstəyi əlavə edilib.
  • Rusticl OpenCL drayveri artıq yerli C++ stdliblərindən istifadə edən tətbiqlərlə düzgün işləməsi üçün statik olaraq əlaqəli C++ stdlib tələb edir.
  • radeonsi drayveri (AMD) GL_NV_timeline_semaphore OpenGL uzantısı üçün dəstək əlavə edib.
  • Panfrost drayveri (ARM Mali) artıq OpenGL GL_EXT_shader_image_load_store uzantısını dəstəkləyir.
  • v3d drayveri (Broadcom VideoCore) artıq GL_ARB_sample_shading OpenGL uzantısını dəstəkləyir.
  • Vulkan uzantıları üçün əlavə dəstək:
    • Panvk üçün VK_ARM_scheduling_controls
    • Panvk üçün VK_EXT_acquire_drm_display
    • Panvk üçün VK_EXT_astc_decode_mode
    • panvk üçün VK_EXT_attachment_feedback_loop_dynamic_state
    • panvk üçün VK_EXT_attachment_feedback_loop_layout
    • Lavabo üçün VK_EXT_blend_operation_advanced
    • panvk üçün VK_EXT_color_write_enable
    • panvk üçün VK_EXT_şərti_göstərmə
    • Panvk üçün VK_EXT_depth_clamp_control
    • RADV üçün VK_EXT_descriptor_heap ('export RADV_EXPERIMENTAL=heap' təyin edərkən)
    • v3dv üçün VK_EXT_hdr_metadata
    • pvr üçün VK_EXT_image_drm_format_modifier
    • Panvk üçün VK_EXT_image_view_min_lod
    • panvk üçün VK_EXT_legacy_dithering
    • VK_EXT_map_memory_placed for panvk
    • panvk üçün VK_EXT_nested_command_buffer
    • PVR üçün VK_EXT_non_seamless_cube_map
    • VK_EXT_present_timing for RADV, NVK, Turnip, ANV, Honeykrisp, panvk
    • RADV üçün VK_EXT_primitive_restart_index
    • Panvk üçün VK_EXT_rgba10x6_formats
    • Panvk üçün VK_EXT_shader_atomic_float
    • Panvk üçün VK_EXT_shader_stencil_export
    • VK_EXT_zero_initialize_device_memory for panvk
    • VK_KHR_copy_memory_indirect for nvk, RADV/GFX8+
    • RADV üçün VK_KHR_cihaz_ünvanı_əmrləri
    • VK_{KHR,EXT}_{surface,swapchain}_maintenance1 for panvk
    • Panvk üçün VK_KHR_get_display_properties2
    • Panvk üçün VK_KHR_get_surface_capabilities2
    • RADV üçün VK_KHR_daxili_sinxronlaşdırılmış_növbələr
    • PVR üçün VK_KHR_maintenance4
    • pvr üçün VK_KHR_pipeline_executable_properties
    • panvk, v3dv üçün VK_KHR_present_id
    • VK_KHR_present_wait panvk, v3dv
    • VK_KHR_sampler_ycbcr_conversion for pvr
    • PVR üçün VK_KHR_shader_integer_dot_product
    • Panvk üçün VK_KHR_shader_untyped_pointers
    • Panvk üçün VK_KHR_swapchain_mutable_format
    • Şalğam üçün VK_QCOM_şəkil_emal
    • panvk üçün VK_VALVE_mutable_descriptor_type
    • RADV üçün VK_VALVE_shader_mixed_float_dot_product (Vega20, Navi14, RDNA2+)
  • OpenCL genişləndirmələri həyata keçirilir:
    • cl_khr_subbroup_ballot for asahi, iris, llvmpipe, radeonsi and zink
    • cl_xr_subgroup_clustered_reduce for asahi, llvmpipe, radeonsi, and zink
    • cl_khr_subgroup_extended_types for asahi, iris, llvmpipe, radeonsi and zink
    • cl_khr_subbroup_non_uniform_arithmetic for asahi, llvmpipe, radeonsi and zink
    • cl_khr_subbroup_non_uniform_vote for asahi, iris, llvmpipe, radeonsi and zink
    • cl_khr_subgroup_rotate for asahi, llvmpipe və zink
  • QEMU üçün virtual GPU tətbiq edən VirGL drayveri artıq texniki xidmət göstərilmir və kimsə onun texniki xidmətini öz üzərinə götürməyə hazır olmadığı təqdirdə silinəcək.

Mənbə: opennet.ru