OpenGL və Vulkanın pulsuz tətbiqi olan Mesa 21.2-nin buraxılışı

Üç aylıq inkişafdan sonra OpenGL və Vulkan API-nin pulsuz tətbiqinin buraxılışı - Mesa 21.2.0 nəşr olundu. Mesa 21.2.0 filialının ilk buraxılışı eksperimental statusa malikdir - kodun yekun sabitləşməsindən sonra 21.2.1 stabil versiyası buraxılacaq.

Mesa 21.2 4.6, iris (Intel), radeonsi (AMD), sink və llvmpipe sürücüləri üçün OpenGL 965 üçün tam dəstəyi ehtiva edir. OpenGL 4.5 dəstəyi AMD (r600) və NVIDIA (nvc0) GPU-lar üçün, virgl üçün OpenGL 4.3 dəstəyi (QEMU/KVM üçün Virgil3D virtual GPU) üçün mövcuddur. Vulkan 1.2 dəstəyi Intel və AMD kartları üçün, həmçinin emulyator rejimində (vn), Vulkan 1.1 dəstəyi Qualcomm GPU-ları və lavapipe proqram rasterizatoru üçün, Vulkan 1.0 isə Broadcom VideoCore VI GPU (Raspberry Pi 4) üçün mövcuddur. .

Əsas yeniliklər:

  • Asahi OpenGL sürücüsü Apple M1 çiplərinə daxil olan GPU üçün ilkin dəstəyə daxildir. Sürücü Gallium interfeysindən istifadə edir və OpenGL 2.1 və OpenGL ES 2.0-ın əksər xüsusiyyətlərini dəstəkləyir, lakin əksər oyunları idarə etmək üçün hələ uyğun deyil. Sürücü kodu Gallium istinad noop sürücüsünə əsaslanır, bəzi kodlar ARM Mali GPU üçün hazırlanmış Panfrost sürücüsündən köçürülür.
  • Crocus OpenGL drayveri Iris sürücüsü tərəfindən dəstəklənməyən köhnə Intel GPU-larının dəstəyinə daxildir (Gen4-Gen7 mikroarxitekturasına əsaslanır). i965 drayverindən fərqli olaraq, yeni drayver Gallium3D arxitekturasına əsaslanır ki, o, yaddaşın idarə edilməsi üzrə tapşırıqları Linux nüvəsindəki DRI sürücüsünə verir və çıxış obyektlərinin təkrar istifadə keşini dəstəkləməklə hazır vəziyyət izləyicisini təmin edir.
  • ARM Mali Midgard və Bifrost GPU-ları üçün Vulkan qrafika API-yə dəstək verən PanVk sürücüsü daxil edilmişdir. PanVk Collabora əməkdaşları tərəfindən hazırlanır və OpenGL-ə dəstək verən Panfrost layihəsinin inkişafının davamı kimi yerləşdirilir.
  • Midgard GPU (Mali T760 və daha yeni) və Bifrost GPU (Mali G31, G52, G76) üçün Panfrost sürücüsü OpenGL ES 3.1-i dəstəkləyir. Gələcək planlara Bifrost çiplərində performansın artırılması üzrə işlər və Valhall arxitekturasına (Mali G77 və daha yeni) əsaslanan GPU dəstəyinin həyata keçirilməsi daxildir.
  • 32-bit x86 quruluşları riyaziyyat hesablamaları üçün x87 təlimatları əvəzinə sse2 təlimatlarından istifadə edir.
  • NVIDIA GT50x GPU (GeForce GT 21×2) üçün Nouveau nv0 sürücüsü OpenGL ES 3.1-i dəstəkləyir.
  • Qualcomm Adreno GPU üçün hazırlanmış Vulkan sürücüsü TURNIP və OpenGL sürücüsü Freedreno, Adreno a6xx gen4 GPU (a660, a635) üçün ilkin dəstəyə malikdir.
  • RADV (AMD) Vulkan sürücüsü NGG (Next-Gen Geometry) şeyder mühərriklərindən istifadə edərək primitiv silmə üçün dəstək əlavə etdi. MSVC kompilyatorundan istifadə edərək Windows platformasında RADV drayverini qurmaq imkanı həyata keçirilib.
  • Gələcək Intel Xe-HPG (DG2) qrafik kartlarına dəstək vermək üçün ANV Vulkan sürücüsü (Intel) və Iris OpenGL sürücüsündə hazırlıq işləri aparılıb. Buraya şüa izləmə ilə bağlı ilkin xüsusiyyətlər və şüa izləmə şeyderlərinə dəstək daxildir.
  • Vulkan API üçün proqram rasterizatorunu (llvmpipe ilə analoq, lakin Vulkan üçün Vulkan API zənglərini Gallium API-yə tərcümə edən) həyata keçirən lavapipe sürücüsü “wideLines” rejimini dəstəkləyir (eni 1.0-dan çox olan xətlər üçün dəstək verir).
  • Alternativ GBM (Ümumi Bufer Meneceri) arxa uçlarının dinamik kəşfi və yüklənməsi üçün dəstək həyata keçirilib. Dəyişiklik NVIDIA sürücüləri ilə sistemlərdə Wayland dəstəyini təkmilləşdirmək məqsədi daşıyır.
  • Zink sürücüsü (Sistemdə yalnız Vulkan API-ni dəstəkləməklə məhdudlaşan drayverlər varsa, hardware sürətləndirilmiş OpenGL əldə etməyə imkan verən Vulkan üzərində olan OpenGL API-nin tətbiqi) GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_sparse_buffer, GL_ARB_shader_LARBL_xter_tex, G_Lmaxfill_tex_tex_t_x_______arb_arb_sample_tex_______ və GL_ARB_shader_B_x_teup_____ dəstəkləyir. _shader_saat. Əlavə edilmiş DRM format dəyişdiriciləri (Direct Rendering Manager, VK_EXT_image_drm_format_modifier genişləndirilməsi aktivdir).
  • Vulkan sürücüləri RADV (AMD), ANV (Intel) və lavapipe-ə genişləndirmə dəstəyi əlavə edildi:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_uzatılmış_dinamik_state2 (RADV);
    • VK_EXT_qlobal_priority_query (RADV);
    • VK_EXT_fiziki_cihaz_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_xətti_rasterləşdirmə(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_ayrıca_dərinlik_trafaret_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_genişləndirilmiş_dinamik_state2 (lavapipe).

Mənbə: opennet.ru

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