Izdanje Mesa 26.1, besplatne implementacije OpenGL-a i Vulkana

Nakon tri mjeseca razvoja, objavljena je implementacija otvorenog koda OpenGL i Vulkan API-ja, Mesa 26.1.0. Prvo izdanje grane Mesa 26.1.0 je eksperimentalno; nakon što se kod u potpunosti stabilizira, bit će objavljena stabilna verzija, 26.1.1.

Mesa 26.1 dodaje podršku za Vulkan 1.4 grafički API u ANV upravljačkim programima za Intel GPU-ove, RADV za AMD GPU-ove, NVK za NVIDIA GPU-ove, HoneyKrisp (hk) za Apple GPU-ove, Turnip za Qualcomm GPU-ove, PanVK za ARM Mali GPU-ove, lavapipe softverskom rasterizatoru (lvp) i emulatoru (vn). Upravljački programi v3dv (Broadcom VideoCore GPU za Raspberry Pi 4+) i dzn (Vulkan preko Direct3D 12) podržavaju Vulkan 1.0, upravljački program kk (KosmicKrisp, Vulkan preko Metal) podržava Vulkan 1.1, a upravljački program pvr (Imagination PowerVR GPU) podržava Vulkan 1.2.

Mesa također pruža punu podršku za OpenGL 4.6 za iris (Intel Gen 8+ GPU-ovi), radeonsi (AMD), Crocus (stariji Intel Gen4-Gen7 GPU-ovi), AMD (r600), zink, llvmpipe, virgl (virgil3D virtualni GPU za QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (OpenGL sloj na vrhu DirectX 12) i asahi (AGX GPU koji se koristi u Apple M1 i M2 čipovima). Podrška za OpenGL 4.5 dostupna je za NVIDIA (nvc0) GPU-ove. Podrška za OpenGL 3.3 dostupna je u upravljačkim programima softpipe (softverski rasterizator) i nv50 (NVIDIA NV50). OpenGL 3 podržan je u upravljačkim programima panfrost (ARM Mali GPU) i v3.1d (Broadcom VideoCore GPU).

Glavne inovacije:

  • Upravljački programi za Intel GPU-ove (Iris, Crocus i ANV) sada podržavaju izravan pristup GPU-u iz virtualnih strojeva korištenjem izvornih konteksta u VirtIO-GPU-u. Izvorni konteksti poboljšavaju performanse pri radu s virtualnim GPU-om (virtio-gpu-gl) u gostujućem sustavu izravnim prijenosom naredbi na stvarni GPU hosta.
  • Podrška za OpenGL ES 2.0 dodana je za PowerVR GPU-ove putem Zink upravljačkog programa, omogućujući hardverski ubrzani OpenGL na uređajima koji podržavaju Vulkan API.
  • Upravljački program rusticl OpenCL sada zahtijeva statički povezanu C++ stdlib datoteku za ispravan rad s aplikacijama koje koriste izvorne C++ stdlib datoteke.
  • Upravljački program za radeonsi (AMD) dodao je podršku za OpenGL ekstenziju GL_NV_timeline_semaphore.
  • Panfrost upravljački program (ARM Mali) sada podržava OpenGL ekstenziju GL_EXT_shader_image_load_store.
  • v3d upravljački program (Broadcom VideoCore) sada podržava OpenGL ekstenziju GL_ARB_sample_shading.
  • Dodana podrška za proširenja Vulkan:
    • VK_ARM_kontrole_raspoređivanja za panvk
    • VK_EXT_acquire_drm_display za panvk
    • VK_EXT_astc_decode_mode za panvk
    • VK_EXT_attachment_feedback_loop_dynamic_state za panvk
    • VK_EXT_attachment_feedback_loop_layout za panvk
    • VK_EXT_blend_operation_advanced za lavapipe
    • VK_EXT_color_write_enable za panvk
    • VK_EXT_uvjetno_renderiranje za panvk
    • VK_EXT_depth_clamp_control za panvk
    • VK_EXT_descriptor_heap za RADV (pri postavljanju 'export RADV_EXPERIMENTAL=heap')
    • VK_EXT_hdr_metapodaci za v3dv
    • VK_EXT_image_drm_format_modifier za PVR
    • VK_EXT_image_view_min_lod za panvk
    • VK_EXT_legacy_dithering za panvk
    • VK_EXT_map_memory_placed za panvk
    • VK_EXT_nested_command_buffer za panvk
    • VK_EXT_non_seamless_cube_map za pvr
    • VK_EXT_present_timing za RADV, NVK, Turnip, ANV, Honeykrisp, panvk
    • VK_EXT_primitive_restart_index za RADV
    • VK_EXT_rgba10x6_formati za panvk
    • VK_EXT_shader_atomic_float za panvk
    • VK_EXT_shader_stencil_export za panvk
    • VK_EXT_zero_initialize_device_memory za panvk
    • VK_KHR_copy_memory_indirect za nvk, RADV/GFX8+
    • VK_KHR_device_address_commands za RADV
    • VK_{KHR,EXT}_{surface,swapchain}_maintenance1 za panvk
    • VK_KHR_get_display_properties2 za panvk
    • VK_KHR_get_surface_capabilities2 za panvk
    • VK_KHR_interno_sinkronizirani_redovi_za RADV
    • VK_KHR_održavanje4 za PVR
    • VK_KHR_pipeline_executable_properties za pvr
    • VK_KHR_present_id za panvk, v3dv
    • VK_KHR_present_wait for panvk, v3dv
    • VK_KHR_sampler_ycbcr_conversion za PVR
    • VK_KHR_shader_integer_dot_product za pvr
    • VK_KHR_shader_untyped_pointers za panvk
    • VK_KHR_swapchain_mutable_format za panvk
    • VK_QCOM_obrada_slike za Turnip
    • VK_VALVE_mutable_descriptor_type za panvk
    • VK_VALVE_shader_mixed_float_dot_product za RADV (Vega20, Navi14, RDNA2+)
  • Implementirana OpenCL proširenja:
    • cl_khr_subgroup_ballot za asahi, iris, llvmpipe, radeonsi i zink
    • cl_xr_subgroup_clustered_reduce za asahi, llvmpipe, radeonsi i zink
    • cl_khr_subgroup_extended_types za asahi, iris, llvmpipe, radeonsi i zink
    • cl_khr_subgroup_non_uniform_arithmetic za asahi, llvmpipe, radeonsi i zink
    • cl_khr_subgroup_non_uniform_vote za asahi, iris, llvmpipe, radeonsi i zink
    • cl_khr_subgroup_rotate za asahi, llvmpipe i zink
  • VirGL upravljački program, koji implementira virtualni GPU za QEMU, više se ne održava i bit će uklonjen osim ako netko ne bude voljan preuzeti njegovo održavanje.

Izvor: opennet.ru