OpenGL-i ja Vulkani tasuta juurutuse Mesa 21.2 väljalase

Pärast kolmekuulist arendustööd avaldati OpenGL-i ja Vulkani API tasuta juurutuse - Mesa 21.2.0 - väljalase. Mesa 21.2.0 haru esimene väljalase on eksperimentaalses olekus – pärast koodi lõplikku stabiliseerimist ilmub stabiilne versioon 21.2.1.

Mesa 21.2 sisaldab OpenGL 4.6 täielikku tuge 965, iirise (Intel), radeonsi (AMD), zinki ja llvmpipe draiverite jaoks. OpenGL 4.5 tugi on saadaval AMD (r600) ja NVIDIA (nvc0) GPU jaoks ning OpenGL 4.3 tugi virgl (Virgil3D virtuaalne GPU QEMU/KVM jaoks). Vulkan 1.2 tugi on saadaval Inteli ja AMD kaartidele, samuti emulaatorirežiimis (vn), Vulkan 1.1 tugi on saadaval Qualcommi GPU-dele ja lavapipe tarkvara rasteriseerijale ning Vulkan 1.0 on saadaval Broadcom VideoCore VI GPU-dele (Raspberry Pi 4) .

Peamised uuendused:

  • Asahi OpenGL-draiver on kaasas Apple M1 kiipides sisalduva GPU esialgse toega. Draiver kasutab Galliumi liidest ja toetab enamikku OpenGL 2.1 ja OpenGL ES 2.0 funktsioone, kuid ei sobi veel enamiku mängude käitamiseks. Draiveri kood põhineb Galliumi viite noop draiveril, osa koodist on üle kantud Panfrosti draiverist, mida arendatakse ARM Mali GPU jaoks.
  • Crocus OpenGL-draiver on kaasas vanemate Inteli GPU-de toega (põhineb Gen4-Gen7 mikroarhitektuuridel), mida Irise draiver ei toeta. Erinevalt i965 draiverist põhineb uus draiver Gallium3D arhitektuuril, mis tellib mäluhalduse ülesanded Linuxi kerneli DRI draiverile ja pakub valmis olekujälgijat, mis toetab väljundobjektide vahemälu taaskasutamist.
  • Kaasas on PanVk draiver, mis toetab Vulkani graafika API-d ARM Mali Midgardi ja Bifrosti GPU-de jaoks. PanVk-d arendavad Collabora töötajad ja see on positsioneeritud OpenGL-i tuge pakkuva Panfrosti projekti arenduse jätkuna.
  • Midgardi GPU-de (Mali T760 ja uuemad) ja Bifrosti GPU-de (Mali G31, G52, G76) Panfrosti draiver toetab OpenGL ES 3.1. Tulevikuplaanid hõlmavad tööd Bifrosti kiipide jõudluse suurendamiseks ja Valhalli arhitektuuril põhineva GPU toe rakendamist (Mali G77 ja uuemad).
  • 32-bitised x86 järgud kasutavad matemaatilisteks arvutusteks x87 juhiste asemel sse2 juhiseid.
  • NVIDIA GT50x GPU (GeForce GT 21×2) Nouveau nv0 draiver toetab OpenGL ES 3.1.
  • Qualcomm Adreno GPU jaoks välja töötatud Vulkani draiveril TURNIP ja OpenGL-i draiveril Freedreno on esialgne tugi Adreno a6xx gen4 GPU-le (a660, a635).
  • RADV (AMD) Vulkani draiver on lisanud NGG (Next-Gen Geometry) varjumootorite abil primitiivse hävitamise toe. Rakendatud on võimalus ehitada RADV draiverit Windowsi platvormil MSVC kompilaatori abil.
  • Ettevalmistustööd on tehtud ANV Vulkani draiveris (Intel) ja Iris OpenGL draiveris, et pakkuda tuge tulevastele Intel Xe-HPG (DG2) graafikakaartidele. See hõlmab kiirjälgimisega seotud esialgseid funktsioone ja kiirte jälgimise varjutajate tuge.
  • Lavapipe'i draiver, mis rakendab Vulkani API jaoks tarkvara rasteriseerijat (analoogselt llvmpipe'iga, kuid Vulkani jaoks, mis tõlgib Vulkani API kutsed Gallium API-sse), toetab režiimi "wideLines" (toetab ridu, mille laius ületab 1.0).
  • Rakendatud on alternatiivsete GBM-i (Generic Buffer Manager) taustaprogrammide dünaamilise avastamise ja laadimise tugi. Muudatuse eesmärk on parandada Waylandi tuge NVIDIA draiveritega süsteemides.
  • Zink-draiver (OpenGL API rakendus Vulkani peal, mis võimaldab hankida riistvaraliselt kiirendatud OpenGL-i, kui süsteemil on ainult Vulkani API-d toetavad draiverid) toetab OpenGL-i laiendusi GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_ARBhaste ja texture_GL_ARBhaste. der_clock. Lisatud DRM-vormingu modifikaatorid (Direct Rendering Manager, VK_EXT_image_drm_format_modifier laiendus lubatud).
  • Laienduste tugi on lisatud Vulkani draiveritele RADV (AMD), ANV (Intel) ja lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_globaalne_prioriteedipäring (RADV);
    • VK_EXT_füüsilise_seadme_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_real_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_eraldi_sügavuse_šabloonide_paigutused(lavapipe);
    • VK_EXT_eraldi_šabloonkasutus(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Allikas: opennet.ru

Lisa kommentaar