Rhyddhau Mesa 26.1, gweithrediad rhad ac am ddim o OpenGL a Vulkan

Ar ôl tri mis o ddatblygu, mae gweithrediad ffynhonnell agored APIs OpenGL a Vulkan, Mesa 26.1.0, wedi'i ryddhau. Mae'r datganiad cyntaf o gangen Mesa 26.1.0 yn arbrofol; ar ôl i'r cod gael ei sefydlogi'n llawn, bydd y fersiwn sefydlog, 26.1.1, yn cael ei rhyddhau.

Mae Mesa 26.1 yn ychwanegu cefnogaeth ar gyfer API graffeg Vulkan 1.4 yn y gyrwyr ANV ar gyfer GPUs Intel, RADV ar gyfer GPUs AMD, NVK ar gyfer GPUs NVIDIA, HoneyKrisp (hk) ar gyfer GPUs Apple, Turnip ar gyfer GPUs Qualcomm, PanVK ar gyfer GPUs ARM Mali, y rasterydd meddalwedd lavapipe (lvp), a'r modd efelychydd (vn). Mae'r gyrwyr v3dv (Broadcom VideoCore GPU ar gyfer Raspberry Pi 4+) a dzn (Vulkan dros Direct3D 12) yn cefnogi Vulkan 1.0, mae'r gyrrwr kk (KosmicKrisp, Vulkan dros Metal) yn cefnogi Vulkan 1.1, ac mae'r gyrrwr pvr (Imagination PowerVR GPU) yn cefnogi Vulkan 1.2.

Mae Mesa hefyd yn darparu cefnogaeth lawn OpenGL 4.6 ar gyfer yr iris (GPUs Intel Gen 8+), radeonsi (AMD), Crocus (GPUs Intel Gen4-Gen7 hŷn), AMD (r600), zink, llvmpipe, virgl (GPU rhithwir virgil3D ar gyfer QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (haen OpenGL ar ben DirectX 12), ac asahi (GPU AGX a ddefnyddir mewn sglodion Apple M1 ac M2). Mae cefnogaeth OpenGL 4.5 ar gael ar gyfer GPUs NVIDIA (nvc0). Mae cefnogaeth OpenGL 3.3 ar gael yn y gyrwyr softpipe (rasterydd meddalwedd) a nv50 (NVIDIA NV50). Cefnogir OpenGL 3 yn y gyrwyr panfrost (GPU ARM Mali) a v3.1d (GPU Broadcom VideoCore).

Prif arloesiadau:

  • Mae gyrwyr ar gyfer GPUau Intel (Iris, Crocus, ac ANV) bellach yn cefnogi mynediad uniongyrchol i GPU o beiriannau rhithwir gan ddefnyddio cyd-destunau brodorol yn VirtIO-GPU. Mae cyd-destunau brodorol yn gwella perfformiad wrth weithio gyda GPU rhithwir (virtio-gpu-gl) mewn system westai trwy drosglwyddo gorchmynion yn uniongyrchol i'r GPU gwesteiwr gwirioneddol.
  • Mae cefnogaeth OpenGL ES 2.0 wedi'i ychwanegu ar gyfer GPUs PowerVR trwy'r gyrrwr Zink, gan alluogi OpenGL wedi'i gyflymu gan galedwedd ar ddyfeisiau sy'n cefnogi'r API Vulkan.
  • Mae'r gyrrwr OpenCL rusticl bellach angen stdlib C++ sydd wedi'i gysylltu'n statig i weithio'n gywir gyda chymwysiadau sy'n defnyddio stdlibs C++ brodorol.
  • Mae'r gyrrwr radeonsi (AMD) wedi ychwanegu cefnogaeth ar gyfer yr estyniad OpenGL GL_NV_timeline_semaphore.
  • Mae'r gyrrwr panfrost (ARM Mali) bellach yn cefnogi'r estyniad OpenGL GL_EXT_shader_image_load_store.
  • Mae'r gyrrwr v3d (Broadcom VideoCore) bellach yn cefnogi'r estyniad OpenGL GL_ARB_sample_shading.
  • Cefnogaeth ychwanegol ar gyfer estyniadau Vulkan:
    • Rheolyddion_amlwg_VK_ARM ar gyfer panvk
    • VK_EXT_acquire_drm_display ar gyfer panvk
    • VK_EXT_astc_decode_mode ar gyfer panvk
    • VK_EXT_attachment_feedback_loop_dynamic_state ar gyfer panvk
    • VK_EXT_attachment_feedback_loop_layout ar gyfer panvk
    • VK_EXT_blend_operation_advanced ar gyfer pibell lafa
    • VK_EXT_color_write_enable ar gyfer panvk
    • Rendro_amodol_VK_EXT ar gyfer panvk
    • VK_EXT_depth_clamp_control ar gyfer panvk
    • VK_EXT_descriptor_heap ar gyfer RADV (wrth osod 'export RADV_EXPERIMENTAL=heap')
    • Metadata_hdr_VK_EXT_ar gyfer v3dv
    • VK_EXT_image_drm_format_modifier ar gyfer pvr
    • VK_EXT_image_view_min_lod ar gyfer panvk
    • VK_EXT_legacy_dithering ar gyfer panvk
    • VK_EXT_map_memory_placed ar gyfer panvk
    • Byffer_command_nested_VK_EXT_ar gyfer panvk
    • Map_ciwb_non_seamless_VK_EXT_ar gyfer pvr
    • Amseru_presennol_VK_EXT ar gyfer RADV, NVK, Turnip, ANV, Honeykrisp, panvk
    • VK_EXT_primitive_restart_index ar gyfer RADV
    • Fformatau VK_EXT_rgba10x6 ar gyfer panvk
    • VK_EXT_shader_atomic_float ar gyfer panvk
    • VK_EXT_shader_stencil_export ar gyfer panvk
    • VK_EXT_zero_initialize_device_memory ar gyfer panvk
    • VK_KHR_copy_memory_indirect ar gyfer nvk, RADV/GFX8+
    • Gorchmynion_cyfeiriad_device_VK_KHR ar gyfer RADV
    • VK_{KHR,EXT}_{arwyneb,cadwyn gyfnewid}_cynnal a chadw1 ar gyfer panvk
    • VK_KHR_get_display_properties2 ar gyfer panvk
    • VK_KHR_get_surface_capabilities2 ar gyfer panvk
    • Ciwiau_cyson_yn_fewnol_VK_KHR ar gyfer RADV
    • VK_KHR_maintenance4 ar gyfer pvr
    • Priodweddau_gweithredadwy_VK_KHR_pipeline_ar gyfer pvr
    • VK_KHR_present_id ar gyfer panvk, v3dv
    • VK_KHR_present_aros am panvk, v3dv
    • VK_KHR_sampler_ycbcr_conversion ar gyfer pvr
    • VK_KHR_shader_integer_dot_product ar gyfer pvr
    • Pwyntyddion VK_KHR_shader_untyped_ ar gyfer panvk
    • Fformat_newid_chwyn_VK_KHR ar gyfer panvk
    • Prosesu_delwedd_VK_QCOM ar gyfer Turnip
    • Math_disgrifiad_newidiol_VK_VALVE ar gyfer panvk
    • Cynnyrch_dot_float_dot_VK_VALVE_shader_mixed_float_VK ar gyfer RADV (Vega20, Navi14, RDNA2+)
  • Estyniadau OpenCL wedi'u gweithredu:
    • cl_khr_subgroup_ballot ar gyfer asahi, iris, llvmpipe, radeonsi a zink
    • cl_xr_subgroup_clustered_reduce ar gyfer asahi, llvmpipe, radeonsi, a zink
    • cl_khr_subgroup_extended_types ar gyfer asahi, iris, llvmpipe, radeonsi a zink
    • cl_khr_subgroup_non_uniform_arithmetic ar gyfer asahi, llvmpipe, radeonsi a zink
    • cl_khr_subgroup_non_uniform_vote ar gyfer asahi, iris, llvmpipe, radeonsi a zink
    • cl_khr_subgroup_rotate ar gyfer asahi, llvmpipe a zink
  • Nid yw'r gyrrwr VirGL, sy'n gweithredu GPU rhithwir ar gyfer QEMU, yn cael ei gynnal mwyach a bydd yn cael ei ddileu oni bai bod rhywun yn fodlon cymryd drosodd ei gynnal a'i gadw.

Ffynhonnell: opennet.ru