Itusilẹ ti Mesa 21.2, imuse ọfẹ ti OpenGL ati Vulkan

Lẹhin oṣu mẹta ti idagbasoke, itusilẹ ti imuse ọfẹ ti OpenGL ati Vulkan API - Mesa 21.2.0 - ni a tẹjade. Itusilẹ akọkọ ti ẹka Mesa 21.2.0 ni ipo esiperimenta - lẹhin imuduro ikẹhin ti koodu, ẹya iduroṣinṣin 21.2.1 yoo jẹ idasilẹ.

Mesa 21.2 pẹlu atilẹyin kikun fun OpenGL 4.6 fun 965, iris (Intel), radeonsi (AMD), zink ati awọn awakọ lvmpipe. OpenGL 4.5 support wa fun AMD (r600) ati NVIDIA (nvc0) GPUs, ati OpenGL 4.3 support fun virgl (Virgil3D foju GPU fun QEMU/KVM). Atilẹyin Vulkan 1.2 wa fun awọn kaadi Intel ati AMD, ati ni ipo emulator (vn), atilẹyin Vulkan 1.1 wa fun Qualcomm GPUs ati rasterizer sọfitiwia lavapipe, ati Vulkan 1.0 wa fun Broadcom VideoCore VI GPUs (Rasipibẹri Pi 4) .

Awọn imotuntun akọkọ:

  • Awakọ asahi OpenGL wa pẹlu atilẹyin akọkọ fun GPU ti o wa ninu awọn eerun Apple M1. Awakọ naa nlo wiwo Gallium ati atilẹyin pupọ julọ awọn ẹya ti OpenGL 2.1 ati OpenGL ES 2.0, ṣugbọn ko tii dara fun ṣiṣe awọn ere pupọ julọ. Koodu awakọ naa da lori awakọ noop itọkasi Gallium, pẹlu koodu diẹ ti a gbejade lati ọdọ awakọ Panfrost ti o ni idagbasoke fun ARM Mali GPU.
  • Awakọ Crocus OpenGL wa pẹlu atilẹyin fun Intel GPUs agbalagba (da lori Gen4-Gen7 microarchitectures), eyiti ko ṣe atilẹyin nipasẹ awakọ Iris. Ko dabi awakọ i965, awakọ tuntun da lori faaji Gallium3D, eyiti o ṣe alaye awọn iṣẹ ṣiṣe iṣakoso iranti si awakọ DRI ni ekuro Linux ati pese olutọpa ipinlẹ ti o ṣetan pẹlu atilẹyin fun kaṣe atunlo ti awọn nkan iṣelọpọ.
  • Awakọ PanVk wa pẹlu, n pese atilẹyin fun API awọn aworan Vulkan fun ARM Mali Midgard ati Bifrost GPUs. PanVk ti wa ni idagbasoke nipasẹ awọn oṣiṣẹ Collabora ati pe o wa ni ipo bi itesiwaju idagbasoke ti iṣẹ akanṣe Panfrost, eyiti o pese atilẹyin fun OpenGL.
  • Awakọ Panfrost fun Midgard GPUs (Mali T760 ati tuntun) ati Bifrost GPUs (Mali G31, G52, G76) ṣe atilẹyin OpenGL ES 3.1. Awọn ero ọjọ iwaju pẹlu iṣẹ lati mu iṣẹ pọ si lori awọn eerun Bifrost ati imuse ti atilẹyin GPU ti o da lori faaji Valhall (Mali G77 ati tuntun).
  • 32-bit x86 kọ lo awọn ilana sse87 dipo awọn ilana x2 fun awọn iṣiro iṣiro.
  • Awakọ Nouveau nv50 fun NVIDIA GT21x GPU (GeForce GT 2 × 0) ṣe atilẹyin OpenGL ES 3.1.
  • Awakọ Vulkan TURNIP ati awakọ OpenGL Freedreno, ti o dagbasoke fun Qualcomm Adreno GPU, ni atilẹyin akọkọ fun Adreno a6xx gen4 GPU (a660, a635).
  • Oluwakọ Vulkan RADV (AMD) ti ṣafikun atilẹyin fun imunju iṣaju nipa lilo awọn ẹrọ shader NGG (Geometry Next-Gen). Agbara lati kọ awakọ RADV lori pẹpẹ Windows nipa lilo akopọ MSVC ti ni imuse.
  • A ti ṣe iṣẹ igbaradi ni awakọ ANV Vulkan (Intel) ati awakọ Iris OpenGL lati pese atilẹyin fun awọn kaadi eya Intel Xe-HPG (DG2) ti n bọ. Eyi pẹlu awọn ẹya akọkọ ti o ni ibatan si wiwapa ray ati atilẹyin fun awọn ojiji wiwapa ray.
  • Awakọ lavapipe, eyiti o ṣe imuse rasterizer sọfitiwia fun Vulkan API (afọwọṣe si llvmpipe, ṣugbọn fun Vulkan, titumọ awọn ipe Vulkan API si Gallium API), ṣe atilẹyin ipo “wideLines” (pese atilẹyin fun awọn laini pẹlu iwọn ti o kọja 1.0).
  • Atilẹyin fun wiwa ti o ni agbara ati ikojọpọ ti GBM yiyan (Generic Buffer Manager) awọn ẹhin ẹhin ti ni imuse. Iyipada naa ni ifọkansi lati ni ilọsiwaju atilẹyin Wayland lori awọn eto pẹlu awọn awakọ NVIDIA.
  • Awakọ Zink (imuse ti OpenGL API lori oke Vulkan, eyiti o fun ọ laaye lati gba OpenGL imuyara ohun elo ti eto naa ba ni awọn awakọ ti o ni opin si atilẹyin Vulkan API nikan) ṣe atilẹyin awọn amugbooro OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_groture_Lshader_BGL ati GL_ARB_shader_groture_GLsha _ aago. Awọn oluyipada ọna kika DRM ti a ṣafikun (Oluṣakoso Rendering Taara, ti ṣiṣẹ itẹsiwaju VK_EXT_image_drm_format_modifier).
  • Atilẹyin fun awọn amugbooro ti wa ni afikun si awọn awakọ Vulkan RADV (AMD), ANV (Intel) ati 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).

orisun: opennet.ru

Fi ọrọìwòye kun