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

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

Mesa 21.2 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). La prise en charge de Vulkan 1.2 est disponible pour les cartes Intel et AMD, ainsi qu'en mode émulateur (vn), la prise en charge de Vulkan 1.1 est disponible pour les GPU Qualcomm et le logiciel de rastérisation lavapipe, et Vulkan 1.0 est disponible pour les GPU Broadcom VideoCore VI (Raspberry Pi 4). .

Principales nouveautés :

  • Le pilote asahi OpenGL est inclus avec la prise en charge initiale du GPU inclus dans les puces Apple M1. Le pilote utilise l'interface Gallium et prend en charge la plupart des fonctionnalités d'OpenGL 2.1 et OpenGL ES 2.0, mais n'est pas encore adapté à l'exécution de la plupart des jeux. Le code du pilote est basé sur le pilote noop de référence Gallium, avec du code transféré du pilote Panfrost en cours de développement pour le GPU ARM Mali.
  • Le pilote Crocus OpenGL est inclus avec la prise en charge des anciens GPU Intel (basés sur les microarchitectures Gen4-Gen7), qui ne sont pas pris en charge par le pilote Iris. Contrairement au pilote i965, le nouveau pilote est basé sur l'architecture Gallium3D, qui sous-traite les tâches de gestion de la mémoire au pilote DRI du noyau Linux et fournit un outil de suivi d'état prêt à l'emploi avec prise en charge d'un cache de réutilisation des objets de sortie.
  • Le pilote PanVk est inclus, assurant la prise en charge de l'API graphique Vulkan pour les GPU ARM Mali Midgard et Bifrost. PanVk est développé par les employés de Collabora et se positionne comme une continuation du développement du projet Panfrost, qui prend en charge OpenGL.
  • Le pilote Panfrost pour les GPU Midgard (Mali T760 et versions ultérieures) et les GPU Bifrost (Mali G31, G52, G76) prend en charge OpenGL ES 3.1. Les plans futurs incluent des travaux visant à augmenter les performances des puces Bifrost et la mise en œuvre du support GPU basé sur l'architecture Valhall (Mali G77 et plus récent).
  • Les versions x32 86 bits utilisent les instructions sse87 au lieu des instructions x2 pour les calculs mathématiques.
  • Le pilote Nouveau nv50 pour le GPU NVIDIA GT21x (GeForce GT 2×0) prend en charge OpenGL ES 3.1.
  • Le pilote Vulkan TURNIP et le pilote OpenGL Freedreno, développés pour le GPU Qualcomm Adreno, prennent en charge initialement le GPU Adreno a6xx gen4 (a660, a635).
  • Le pilote RADV (AMD) Vulkan a ajouté la prise en charge de l'élimination primitive à l'aide des moteurs de shader NGG (Next-Gen Geometry). La possibilité de créer le pilote RADV sur la plate-forme Windows à l'aide du compilateur MSVC a été implémentée.
  • Des travaux préparatoires ont été effectués sur le pilote ANV Vulkan (Intel) et le pilote Iris OpenGL pour assurer la prise en charge des prochaines cartes graphiques Intel Xe-HPG (DG2). Cela inclut les fonctionnalités initiales liées au lancer de rayons et à la prise en charge des shaders de traçage de rayons.
  • Le pilote lavapipe, qui implémente un rastériseur logiciel pour l'API Vulkan (analogue à llvmpipe, mais pour Vulkan, traduisant les appels de l'API Vulkan vers l'API Gallium), prend en charge le mode « wideLines » (fournit la prise en charge des lignes d'une largeur supérieure à 1.0).
  • La prise en charge de la découverte dynamique et du chargement de backends GBM (Generic Buffer Manager) alternatifs a été implémentée. Le changement vise à améliorer la prise en charge de Wayland sur les systèmes dotés de pilotes NVIDIA.
  • 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 les extensions OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax et GL_ARB_shader_clock. Ajout de modificateurs de format DRM (Direct Rendering Manager, extension VK_EXT_image_drm_format_modifier activée).
  • La prise en charge des extensions a été ajoutée aux pilotes Vulkan RADV (AMD), ANV (Intel) et 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, tuyau de lave, RADV);
    • VK_KHR_separate_degree_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Source: opennet.ru

Ajouter un commentaire