Utgivelse av Mesa 21.2, en gratis implementering av OpenGL og Vulkan

Etter tre måneders utvikling ble utgivelsen av en gratis implementering av OpenGL og Vulkan API - Mesa 21.2.0 - publisert. Den første utgivelsen av Mesa 21.2.0-grenen har en eksperimentell status - etter den endelige stabiliseringen av koden vil en stabil versjon 21.2.1 bli utgitt.

Mesa 21.2 inkluderer full støtte for OpenGL 4.6 for 965, iris (Intel), radeonsi (AMD), zink og llvmpipe-drivere. OpenGL 4.5-støtte er tilgjengelig for AMD (r600) og NVIDIA (nvc0) GPUer, og OpenGL 4.3-støtte for virgl (Virgil3D virtuell GPU for QEMU/KVM). Vulkan 1.2-støtte er tilgjengelig for Intel- og AMD-kort, så vel som i emulatormodus (vn), Vulkan 1.1-støtte er tilgjengelig for Qualcomm GPUer og lavapipe-programvaren rasterizer, og Vulkan 1.0 er tilgjengelig for Broadcom VideoCore VI GPUer (Raspberry Pi 4) .

Hovedinnovasjoner:

  • Asahi OpenGL-driveren er inkludert med innledende støtte for GPU-en inkludert i Apple M1-brikker. Driveren bruker Gallium-grensesnittet og støtter de fleste funksjonene til OpenGL 2.1 og OpenGL ES 2.0, men er ennå ikke egnet for å kjøre de fleste spill. Driverkoden er basert på Gallium referanse noop-driveren, med noe kode overført fra Panfrost-driveren som er utviklet for ARM Mali GPU.
  • Crocus OpenGL-driveren er inkludert med støtte for eldre Intel GPUer (basert på Gen4-Gen7 mikroarkitekturer), som ikke støttes av Iris-driveren. I motsetning til i965-driveren, er den nye driveren basert på Gallium3D-arkitekturen, som outsourcer minneadministrasjonsoppgaver til DRI-driveren i Linux-kjernen og gir en ferdiglagd tilstandssporing med støtte for en gjenbruksbuffer for utdataobjekter.
  • PanVk-driveren er inkludert, og gir støtte for Vulkan grafikk API for ARM Mali Midgard og Bifrost GPUer. PanVk utvikles av Collabora-ansatte og er posisjonert som en fortsettelse av utviklingen av Panfrost-prosjektet, som gir støtte til OpenGL.
  • Panfrost-driveren for Midgard GPUer (Mali T760 og nyere) og Bifrost GPUer (Mali G31, G52, G76) støtter OpenGL ES 3.1. Fremtidige planer inkluderer arbeid for å øke ytelsen på Bifrost-brikker og implementering av GPU-støtte basert på Valhall-arkitekturen (Mali G77 og nyere).
  • 32-bits x86-bygg bruker sse87-instruksjoner i stedet for x2-instruksjoner for matematiske beregninger.
  • Nouveau nv50-driveren for NVIDIA GT21x GPU (GeForce GT 2×0) støtter OpenGL ES 3.1.
  • Vulkan-driveren TURNIP og OpenGL-driveren Freedreno, utviklet for Qualcomm Adreno GPU, har innledende støtte for Adreno a6xx gen4 GPU (a660, a635).
  • RADV (AMD) Vulkan-driveren har lagt til støtte for primitiv utslakting ved bruk av NGG (Next-Gen Geometry) shader-motorer. Muligheten til å bygge RADV-driveren på Windows-plattformen ved hjelp av MSVC-kompilatoren er implementert.
  • Forberedende arbeid er utført i ANV Vulkan-driveren (Intel) og Iris OpenGL-driveren for å gi støtte for de kommende Intel Xe-HPG (DG2) grafikkortene. Dette inkluderer innledende funksjoner knyttet til strålesporing og støtte for strålesporingsskyggere.
  • Lavapipe-driveren, som implementerer en programvarerasterizer for Vulkan API (analog med llvmpipe, men for Vulkan, oversettelse av Vulkan API-kall til Gallium API), støtter "wideLines"-modusen (gir støtte for linjer med en bredde som overstiger 1.0).
  • Støtte for dynamisk oppdagelse og lasting av alternative GBM (Generic Buffer Manager) backends er implementert. Endringen er rettet mot å forbedre Wayland-støtten på systemer med NVIDIA-drivere.
  • Zink-driveren (en implementering av OpenGL API på toppen av Vulkan, som lar deg få maskinvareakselerert OpenGL hvis systemet har drivere begrenset til kun å støtte Vulkan API) støtter OpenGL-utvidelsene GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_filter_ARB_maxure og GL_filter_ARB_maxure. Lagt til DRM-formatmodifikatorer (Direct Rendering Manager, VK_EXT_image_drm_format_modifier-utvidelse aktivert).
  • Støtte for utvidelser er lagt til Vulkan-driverne RADV (AMD), ANV (Intel) og lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_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_separate_depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Kilde: opennet.ru

Legg til en kommentar