Mesa 21.2, nemokama OpenGL ir Vulkan diegimo, išleidimas

Po trijų mėnesių kūrimo buvo paskelbtas nemokamas OpenGL ir Vulkan API diegimas - Mesa 21.2.0. Pirmasis Mesa 21.2.0 atšakos leidimas turi eksperimentinį statusą – galutinai stabilizavus kodą, bus išleista stabili 21.2.1 versija.

Mesa 21.2 apima visą OpenGL 4.6 palaikymą, skirtą 965, iris (Intel), radeonsi (AMD), zink ir llvmpipe tvarkyklėms. OpenGL 4.5 palaikymas galimas AMD (r600) ir NVIDIA (nvc0) GPU, o OpenGL 4.3 palaikymas virgl (Virgil3D virtualus GPU, skirtas QEMU/KVM). „Vulkan 1.2“ palaikymas galimas „Intel“ ir AMD kortelėms, taip pat emuliatoriaus režimu (vn), „Vulkan 1.1“ palaikymas galimas „Qualcomm“ GPU ir „lavapipe“ programinės įrangos rasterizeriui, o „Vulkan 1.0“ galimas „Broadcom VideoCore VI“ GPU (Raspberry Pi 4) .

Pagrindinės naujovės:

  • „Asahi OpenGL“ tvarkyklė yra įtraukta į pradinį „Apple M1“ lustuose esančio GPU palaikymą. Vairuotojas naudoja „Gallium“ sąsają ir palaiko daugumą „OpenGL 2.1“ ir „OpenGL ES 2.0“ funkcijų, tačiau dar netinka daugeliui žaidimų. Tvarkyklės kodas yra pagrįstas „Gallium reference noop“ tvarkykle, o kai kurie kodai perkeliami iš „Panfrost“ tvarkyklės, kuri kuriama ARM Mali GPU.
  • „Crocus OpenGL“ tvarkyklė įtraukta kartu su senesnių „Intel“ GPU (remiantis „Gen4-Gen7“ mikroarchitektūromis), kurių nepalaiko „Iris“ tvarkyklė. Skirtingai nuo i965 tvarkyklės, naujoji tvarkyklė yra pagrįsta Gallium3D architektūra, kuri perduoda atminties valdymo užduotis DRI tvarkyklei Linux branduolyje ir pateikia paruoštą būsenos sekiklį, palaikantį pakartotinį išvesties objektų talpyklos naudojimą.
  • Įtraukta PanVk tvarkyklė, palaikanti Vulkan grafikos API, skirtą ARM Mali Midgard ir Bifrost GPU. „PanVk“ kuria „Collabora“ darbuotojai ir yra „Panfrost“ projekto, teikiančio paramą „OpenGL“, kūrimo tęsinys.
  • Panfrost tvarkyklė, skirta Midgard GPU (Mali T760 ir naujesnėms) ir Bifrost GPU (Mali G31, G52, G76) palaiko OpenGL ES 3.1. Ateities planai apima Bifrost lustų našumo didinimą ir GPU palaikymą, pagrįstą Valhall architektūra (Mali G77 ir naujesne).
  • 32 bitų x86 versijos naudoja sse87 instrukcijas, o ne x2 instrukcijas matematiniams skaičiavimams.
  • NVIDIA GT50x GPU (GeForce GT 21×2) skirta Nouveau nv0 tvarkyklė palaiko OpenGL ES 3.1.
  • Vulkan tvarkyklės TURNIP ir OpenGL tvarkyklės Freedreno, sukurtos Qualcomm Adreno GPU, turi pradinį Adreno a6xx gen4 GPU (a660, a635) palaikymą.
  • RADV (AMD) „Vulkan“ tvarkyklė papildė primityviojo skerdimo palaikymą naudojant NGG (Next-Gen Geometry) šešėlių variklius. Įdiegta galimybė sukurti RADV tvarkyklę Windows platformoje naudojant MSVC kompiliatorių.
  • Buvo atlikti parengiamieji darbai ANV Vulkan tvarkyklėje („Intel“) ir „Iris OpenGL“ tvarkyklėje, siekiant teikti paramą būsimoms Intel Xe-HPG (DG2) vaizdo plokštėms. Tai apima pradines funkcijas, susijusias su spindulių sekimu ir spindulių sekimo šešėlių palaikymu.
  • Lavapipe tvarkyklė, įgyvendinanti programinės įrangos rasterizatorių, skirtą Vulkan API (analogiškai kaip llvmpipe, bet skirta Vulkan, verčianti Vulkan API iškvietimus į Gallium API), palaiko „wideLines“ režimą (palaiko linijas, kurių plotis viršija 1.0).
  • Įdiegtas dinaminio atradimo ir alternatyvių GBM (bendrojo buferio tvarkyklės) užpakalinių sistemų palaikymas. Pakeitimu siekiama pagerinti „Wayland“ palaikymą sistemose su NVIDIA tvarkyklėmis.
  • „Zink“ tvarkyklė (OpenGL API įdiegimas „Vulkan“ viršuje, leidžiantis gauti aparatinės įrangos pagreitintą „OpenGL“, jei sistemoje yra tvarkyklių, palaikančių tik „Vulkan API“) palaiko „OpenGL“ plėtinius GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_ARBhaste ir texture_GL_ARBhaste. der_clock. Pridėta DRM formato modifikatorių (tiesioginio atvaizdavimo tvarkyklė, įgalintas plėtinys VK_EXT_image_drm_format_modifier).
  • Plėtinių palaikymas buvo pridėtas prie Vulkan tvarkyklių RADV (AMD), ANV (Intel) ir lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_fizinis_įrenginys_drm (RADV);
    • VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
    • VK_EXT_color_write_enable (RADV);
    • VK_EXT_acquire_drm_display (RADV, ANV);
    • VK_EXT_vertex_input_dynamic_state(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_atskiras_gylio_trafareto_išdėstymas(lavapipe);
    • VK_EXT_atskiras_trafareto_naudojimas(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Šaltinis: opennet.ru

Добавить комментарий