Rilaxx ta' Mesa 26.1, implimentazzjoni b'xejn ta' OpenGL u Vulkan

Wara tliet xhur ta' żvilupp, ġiet rilaxxata l-implimentazzjoni open source tal-OpenGL u Vulkan APIs, Mesa 26.1.0. L-ewwel rilaxx tal-fergħa Mesa 26.1.0 huwa sperimentali; wara li l-kodiċi jkun ġie stabbilizzat kompletament, tiġi rilaxxata l-verżjoni stabbli, 26.1.1.

Mesa 26.1 iżżid l-appoġġ għall-API tal-grafika Vulkan 1.4 fid-drajvers ANV għall-GPUs Intel, RADV għall-GPUs AMD, NVK għall-GPUs NVIDIA, HoneyKrisp (hk) għall-GPUs Apple, Turnip għall-GPUs Qualcomm, PanVK għall-GPUs ARM Mali, ir-rasterizer tas-softwer lavapipe (lvp), u l-modalità emulatur (vn). Id-drajvers v3dv (Broadcom VideoCore GPU għal Raspberry Pi 4+) u dzn (Vulkan fuq Direct3D 12) jappoġġjaw Vulkan 1.0, id-drajver kk (KosmicKrisp, Vulkan fuq Metal) jappoġġja Vulkan 1.1, u d-drajver pvr (Imagination PowerVR GPU) jappoġġja Vulkan 1.2.

Mesa jipprovdi wkoll appoġġ sħiħ għal OpenGL 4.6 għall-iris (GPUs Intel Gen 8+), radeonsi (AMD), Crocus (GPUs Intel Gen4-Gen7 eqdem), AMD (r600), zink, llvmpipe, virgl (GPU virtwali virgil3D għal QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (saff OpenGL fuq DirectX 12), u asahi (GPU AGX użat fiċ-ċipep Apple M1 u M2). L-appoġġ għal OpenGL 4.5 huwa disponibbli għall-GPUs NVIDIA (nvc0). L-appoġġ għal OpenGL 3.3 huwa disponibbli fis-sewwieqa softpipe (rasterizer tas-softwer) u nv50 (NVIDIA NV50). OpenGL 3 huwa appoġġjat fis-sewwieqa panfrost (ARM Mali GPU) u v3.1d (Broadcom VideoCore GPU).

Innovazzjonijiet ewlenin:

  • Is-sewwieqa għall-GPUs Intel (Iris, Crocus, u ANV) issa jappoġġjaw aċċess dirett għall-GPU minn magni virtwali bl-użu ta' kuntesti nattivi f'VirtIO-GPU. Il-kuntesti nattivi jtejbu l-prestazzjoni meta wieħed jaħdem ma' GPU virtwali (virtio-gpu-gl) f'sistema mistiedna billi jittrażmettu kmandi direttament lill-GPU ospitanti attwali.
  • L-appoġġ għal OpenGL ES 2.0 ġie miżjud għall-GPUs PowerVR permezz tas-sewwieq Zink, li jippermetti OpenGL aċċellerat bil-ħardwer fuq apparati li jappoġġjaw il-Vulkan API.
  • Is-sewwieq rusticl OpenCL issa jeħtieġ stdlib C++ marbuta statikament biex jaħdem b'mod korrett ma' applikazzjonijiet li jużaw stdlibs C++ nattivi.
  • Is-sewwieq radeonsi (AMD) żied l-appoġġ għall-estensjoni OpenGL GL_NV_timeline_semaphore.
  • Is-sewwieq tal-panfrost (ARM Mali) issa jappoġġja l-estensjoni OpenGL GL_EXT_shader_image_load_store.
  • Is-sewwieq v3d (Broadcom VideoCore) issa jappoġġja l-estensjoni OpenGL GL_ARB_sample_shading.
  • Appoġġ miżjud għall-estensjonijiet Vulkan:
    • VK_ARM_scheduling_controls għal panvk
    • VK_EXT_akkwista_drm_wiri għal panvk
    • VK_EXT_astc_decode_mode għal panvk
    • VK_EXT_attachment_feedback_loop_dynamic_state għal panvk
    • VK_EXT_attachment_feedback_loop_layout għal panvk
    • VK_EXT_blend_operation_advanced għal-lavapipe
    • VK_EXT_color_write_enable għal panvk
    • VK_EXT_rendering_kondizzjonali għal panvk
    • Kontroll tal-morsa tal-fond VK_EXT għal panvk
    • VK_EXT_descriptor_heap għal RADV (meta tissettja 'export RADV_EXPERIMENTAL=heap')
    • VK_EXT_hdr_metadata għal v3dv
    • Modifikatur tal-format tad-drm_immaġni VK_EXT għall-pvr
    • VK_EXT_image_view_min_lod għal panvk
    • VK_EXT_legacy_dithering għal panvk
    • VK_EXT_map_memory_placed għal panvk
    • VK_EXT_nested_command_buffer għal panvk
    • VK_EXT_non_seamless_cube_map għall-pvr
    • VK_EXT_preżenti_ħin għal RADV, NVK, Turnip, ANV, Honeykrisp, panvk
    • VK_EXT_primitive_restart_index għal RADV
    • Formati VK_EXT_rgba10x6 għal panvk
    • VK_EXT_shader_atomic_float għal panvk
    • VK_EXT_shader_stencil_export għal panvk
    • VK_EXT_zero_initializza_memorja_tal-apparat għal panvk
    • VK_KHR_copy_memory_indirect għal nvk, RADV/GFX8+
    • Kmandi tal-indirizz_tal-apparat VK_KHR għal RADV
    • VK_{KHR,EXT}_{wiċċ,swapchain}_manutenzjoni1 għal panvk
    • VK_KHR_get_display_properties2 għal panvk
    • VK_KHR_get_surface_capabilities2 għal panvk
    • Kjuwijiet VK_KHR_internament_sinkronizzati għal RADV
    • VK_KHR_manutenzjoni4 għall-pvr
    • Proprjetajiet eżegwibbli tal-pipeline VK_KHR għall-pvr
    • VK_KHR_preżenti_id għal panvk, v3dv
    • VK_KHR_present_wait għal panvk, v3dv
    • Konverżjoni_ycbcr_tal-kampjunar_VK_KHR_għal pvr
    • VK_KHR_shader_integer_dot_product għall-pvr
    • VK_KHR_shader_untyped_pointers għal panvk
    • VK_KHR_swapchain_mutable_format għal panvk
    • VK_QCOM_image_processing għal Turnip
    • Tip ta' deskrizzjoni_mutable_ta' VK_VALVE għal panvk
    • VK_VALVE_shader_mixed_float_dot_product għal RADV (Vega20, Navi14, RDNA2+)
  • Estensjonijiet OpenCL implimentati:
    • cl_khr_subgroup_ballot għal asahi, iris, llvmpipe, radeonsi u zink
    • cl_xr_subgroup_clustered_reduce għal asahi, llvmpipe, radeonsi, u zink
    • cl_khr_subgroup_extended_types għal asahi, iris, llvmpipe, radeonsi u zink
    • cl_khr_subgroup_non_uniform_aritmetic għal asahi, llvmpipe, radeonsi u zink
    • cl_khr_subgroup_non_uniform_vote għal asahi, iris, llvmpipe, radeonsi u zink
    • cl_khr_subgroup_rotate għal asahi, llvmpipe u zink
  • Is-sewwieq VirGL, li jimplimenta GPU virtwali għal QEMU, m'għadux qed jiġi miżmum u se jitneħħa sakemm xi ħadd ma jkunx lest li jieħu f'idejh il-manutenzjoni tiegħu.

Sors: opennet.ru