Mesa 26.1 kaleratzea, OpenGL eta Vulkan-en doako inplementazioa

Hiru hilabeteko garapenaren ondoren, OpenGL eta Vulkan APIen kode irekiko inplementazioa, Mesa 26.1.0, kaleratu da. Mesa 26.1.0 adarraren lehen bertsioa esperimentala da; kodea guztiz egonkortu ondoren, bertsio egonkorra, 26.1.1, kaleratuko da.

Mesa 26.1-k Vulkan 1.4 grafikoen APIrako euskarria gehitzen du Intel GPUetarako ANV kontrolatzaileetan, AMD GPUetarako RADV, NVIDIA GPUetarako NVK, Apple GPUetarako HoneyKrisp (hk), Qualcomm GPUetarako Turnip, ARM Mali GPUetarako PanVK, lavapipe software rasterizatzailea (lvp) eta emuladore modua (vn). v3dv (Broadcom VideoCore GPU Raspberry Pi 4+-rako) eta dzn (Vulkan Direct3D 12 gainetik) kontrolatzaileek Vulkan 1.0 onartzen dute, kk kontrolatzaileak (KosmicKrisp, Vulkan Metal gainetik) Vulkan 1.1 onartzen du eta pvr kontrolatzaileak (Imagination PowerVR GPU) Vulkan 1.2 onartzen du.

Mesak OpenGL 4.6 euskarri osoa eskaintzen du iris (Intel Gen 8+ GPUak), radeonsi (AMD), Crocus (Intel Gen4-Gen7 GPU zaharragoak), AMD (r600), zink, llvmpipe, virgl (virgil3D GPU birtuala QEMU/KVMrako), freedreno (Qualcomm Adreno), d3d12 (DirectX 12ren gainean dagoen OpenGL geruza) eta asahi (Apple M1 eta M2 txipetan erabiltzen den AGX GPUa) txarteletarako. OpenGL 4.5 euskarria NVIDIA (nvc0) GPUetarako dago eskuragarri. OpenGL 3.3 euskarria softpipe (software rasterizatzailea) eta nv50 (NVIDIA NV50) kontrolatzaileetan dago eskuragarri. OpenGL 3 panfrost (ARM Mali GPU) eta v3.1d (Broadcom VideoCore GPU) kontrolatzaileetan onartzen da.

Berrikuntza nagusiak:

  • Intel GPUetarako (Iris, Crocus eta ANV) kontrolatzaileek orain GPUetarako sarbide zuzena onartzen dute makina birtualetatik VirtIO-GPU-n testuinguru natiboak erabiliz. Testuinguru natiboak errendimendua hobetzen du gonbidatu sistema batean GPU birtual batekin (virtio-gpu-gl) lan egitean, komandoak zuzenean benetako ostalari GPUra bidaliz.
  • OpenGL ES 2.0 euskarria gehitu da PowerVR GPUetarako Zink kontrolatzailearen bidez, Vulkan APIa onartzen duten gailuetan hardware bidez azeleratutako OpenGL gaitzeko.
  • OpenCL rusticl kontrolatzaileak orain estatikoki lotutako C++ stdlib bat behar du C++ stdlib natiboak erabiltzen dituzten aplikazioekin behar bezala funtzionatzeko.
  • Radeonsi kontrolatzaileak (AMD) GL_NV_timeline_semaphore OpenGL luzapenerako euskarria gehitu du.
  • Panfrost kontrolatzaileak (ARM Mali) orain GL_EXT_shader_image_load_store OpenGL luzapena onartzen du.
  • v3d kontrolatzaileak (Broadcom VideoCore) GL_ARB_sample_shading OpenGL luzapena onartzen du orain.
  • Vulkan luzapenetarako laguntza gehitu da:
    • VK_ARM_programazio_kontrolak panvk-rentzat
    • VK_EXT_acquire_drm_display panvk-rako
    • VK_EXT_astc_deskodetzeko_modua panvk-rako
    • VK_EXT_eranskinaren_feedback_begizta_egoera_dinamikoa panvk-rentzat
    • VK_EXT_eranskinaren_feedback_begiztaren_diseinua panvk-rako
    • VK_EXT_nahasketa_eragiketa_aurreratua laba-hodirako
    • VK_EXT_color_write_enable panvk-rentzat
    • VK_EXT_baldintzapeko_errendatzea panvk-rentzat
    • VK_EXT_sakonera_pintzatzeko_kontrola panvk-rako
    • VK_EXT_descriptor_heap RADVrako ('export RADV_EXPERIMENTAL=heap' ezartzean)
    • VK_EXT_hdr_metadatuak v3dv-rako
    • VK_EXT_irudi_drm_formatu_aldatzailea pvr-rako
    • VK_EXT_irudi_ikuspegi_min_lod panvk-rako
    • VK_EXT_legacy_dithering panvk-rako
    • VK_EXT_map_memory_placed panvk-rentzat
    • VK_EXT_nested_command_buffer panvk-rako
    • VK_EXT_ez_jolasgabeko_kubo_mapa pvr-rako
    • VK_EXT_oraingo_denbora RADV, NVK, Turnip, ANV, Honeykrisp, panvk-rako
    • VK_EXT_primitive_restart_index RADVrako
    • VK_EXT_rgba10x6_formatuak panvk-rako
    • VK_EXT_shader_atomic_float panvk-rako
    • VK_EXT_shader_stencil_export panvk-rako
    • VK_EXT_zero_hasieratu_gailuaren_memoria panvk-rako
    • VK_KHR_memoria_zeharkako kopia nvk, RADV/GFX8+-rako
    • VK_KHR_gailuaren_helbidearen_komandoak RADVrako
    • VK_{KHR,EXT}_{gainazala,truke-katea}_mantentze-lanak1 panvk-rentzat
    • VK_KHR_get_display_properties2 panvk-rako
    • VK_KHR_get_surface_capibilities2 panvk-rako
    • VK_KHR_barne_sinkronizatutako_ilarak RADVrako
    • VK_KHR_mantentze-lanak4 pvr-rako
    • VK_KHR_hodiaren_exekutagarri_ezaugarriak pvr-rako
    • VK_KHR_present_id panvk, v3dv-rako
    • VK_KHR_present_wait for panvk, v3dv
    • VK_KHR_laginketa_ycbcr_bihurketa pvr-rako
    • VK_KHR_shader_intege_dot_product pvr-rako
    • VK_KHR_shader_motarik gabeko_erakusleak panvk-rako
    • VK_KHR_swapchain_aldagarria_formatua panvk-rako
    • VK_QCOM_irudi_prozesamendua Turnip-erako
    • VK_VALVE_aldagarri_deskriptore_mota panvk-rentzat
    • VK_VALVE_shader_mixed_float_dot_product RADVrako (Vega20, Navi14, RDNA2+)
  • OpenCL luzapenak inplementatuta:
    • cl_khr_azpitalde_balotazioa asahi, iris, llvmpipe, radeonsi eta zink-erako
    • cl_xr_subgroup_clustered_reduce asahi, llvmpipe, radeonsi eta zink-erako
    • cl_khr_azpitaldea_mota_hedatuak asahi, iris, llvmpipe, radeonsi eta zink-erako
    • cl_khr_azpitaldea_aritmetika_ez_uniformea ​​Asahi, llvmpipe, Radeonsi eta Zink-erako
    • cl_khr_azpitaldea_boto_ez_uniformea_asahi, iris, llvmpipe, radeonsi eta zink-entzat
    • cl_khr_subgroup_rotate asahi, llvmpipe eta zink-erako
  • QEMUrako GPU birtual bat inplementatzen duen VirGL kontrolatzailea ez da gehiago mantentzen eta kendu egingo da norbaitek bere mantentze-lanak bere gain hartu nahi ez baditu behintzat.

Iturria: opennet.ru