Sortie de Mesa 21.3, une implémentation gratuite d'OpenGL et de Vulkan

Après quatre mois de développement, la sortie d'une implémentation gratuite des API OpenGL et Vulkan - Mesa 21.3.0 - a été publiée. La première version de la branche Mesa 21.3.0 a un statut expérimental - après la stabilisation finale du code, une version stable 21.3.1 sera publiée.

Mesa 21.3 inclut la prise en charge complète d'OpenGL 4.6 pour les pilotes 965, iris (Intel), radeonsi (AMD), zink et llvmpipe. La prise en charge d'OpenGL 4.5 est disponible pour les GPU AMD (r600) et NVIDIA (nvc0), ainsi que la prise en charge d'OpenGL 4.3 pour virgl (GPU virtuel Virgil3D pour QEMU/KVM). Le support de Vulkan 1.2 est disponible pour les cartes Intel et AMD, ainsi qu'en mode émulateur (vn) et dans le rastériseur du logiciel lavapipe, le support de Vulkan 1.1 est disponible pour le GPU Qualcomm et le rastériseur du logiciel lavapipe, et Vulkan 1.0 est disponible pour le Broadcom GPU VideoCore VI (Raspberry Pi 4).

Principales nouveautés :

  • Le pilote Zink (une implémentation de l'API OpenGL au-dessus de Vulkan, qui vous permet d'obtenir une accélération matérielle OpenGL si le système dispose de pilotes limités à la prise en charge uniquement de l'API Vulkan) prend en charge OpenGL ES 3.2.
  • Le pilote Panfrost, conçu pour fonctionner avec des GPU basés sur les microarchitectures Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) et Bifrost (Mali G3x, G5x, G7x), est officiellement certifié pour la compatibilité avec OpenGL ES 3.1.
  • Le pilote v3dv, développé pour l'accélérateur graphique VideoCore VI, utilisé à partir du modèle Raspberry Pi 4, a une prise en charge certifiée de l'API graphique Vulkan 1.1 et a également ajouté la prise en charge des shaders géométriques. Les performances du code généré par le compilateur de shaders ont été considérablement améliorées, ce qui a un effet positif sur la vitesse des programmes qui utilisent activement les shaders, comme les jeux basés sur Unreal Engine 4.
  • Le pilote RADV Vulkan (AMD) a ajouté une prise en charge expérimentale du lancer de rayons et des shaders de traçage de rayons. Pour les cartes GFX10.3, la prise en charge de l'élimination primitive à l'aide des moteurs de shader NGG (Next-Gen Geometry) est activée par défaut.
  • Le pilote Iris OpenGL (un nouveau pilote pour les GPU Intel) a ajouté la possibilité de compiler des shaders multithread.
  • Le pilote lavapipe, qui implémente un rastériseur logiciel pour l'API Vulkan (similaire à llvmpipe, mais pour Vulkan, traduisant les appels de l'API Vulkan en API Gallium) a implémenté la prise en charge du filtrage de texture anisotrope et a ajouté la prise en charge de Vulkan 1.2.
  • Le pilote OpenGL llvmpipe, conçu pour le rendu logiciel, a augmenté les performances de 2 à 3 fois lors de l'exécution d'actions liées aux opérations 2D. Ajout de la prise en charge des opérations FP16, du filtrage de texture anisotrope (GL_ARB_texture_filter_anisotropic) et des zones de mémoire épinglées (GL_AMD_pinned_memory). La prise en charge du profil de compatibilité OpenGL 4.5 est fournie.
  • Le tracker d'état VA-API (Video Acceleration API) prend en charge l'accélération de l'encodage et du décodage vidéo AV1 lors de l'utilisation des pilotes GPU AMD.
  • La prise en charge EGL a été implémentée pour la plate-forme Windows.
  • Ajout de la prise en charge de l'extension EGL_EXT_present_opaque pour Wayland. Les problèmes d'affichage de la transparence dans les jeux exécutés dans des environnements basés sur le protocole Wayland ont été résolus.
  • La prise en charge des extensions a été ajoutée aux pilotes Vulkan RADV (AMD), ANV (Intel) et lavapipe :
    • VK_EXT_shader_atomic_float2 (Intel, RADV).
    • VK_EXT_vertex_input_dynamic_state (RADV).
    • VK_EXT_primitive_topology_list_restart (RADV, tuyau de lave).
    • VK_KHR_shader_integer_dot_product (RADV).
    • VK_KHR_synchronization2 (Intel).
    • VK_KHR_maintenance4 (RADV).
    • VK_KHR_format_feature_flags2 (RADV).
    • VK_KHR_shader_subgroup_extended_types (tuyau de lave).
    • VK_KHR_spirv_1_4 (tuyau de lave).
    • VK_KHR_timeline_semaphore (tuyau de lave).
    • VK_EXT_external_memory_host (tuyau de lave).
    • VK_KHR_depth_stencil_resolve (tuyau de lave).
    • VK_KHR_shader_float16_int8 (tuyau de lave).
    • VK_EXT_color_write_enable (tuyau de lave).

Source: opennet.ru

Ajouter un commentaire