Collabora a annoncé que le pilote PanVK prend désormais en charge l'API graphique Vulkan 1.1 (auparavant, seul Vulkan 1.0 était pris en charge). Le pilote prend en charge l'API graphique Vulkan sur les appareils dotés de GPU ARM basés sur l'architecture V10, tels que le Mali-G610 et le Mali-G310. En plus de la compatibilité avec l'API Vulkan 1.1, le code PanVK a ajouté la prise en charge de nombreuses extensions des versions plus récentes de Vulkan, mais la compatibilité totale avec Vulkan 1.2 n'a pas encore été atteinte. Les extensions suivantes ont été implémentées :
- VK_KHR_8bit_storage
- Allocation dédiée VK_KHR
- VK_KHR_global_priority
- VK_KHR_index_type_uint8
- VK_KHR_map_memory2
- VK_KHR_multivue (v10+)
- Paramètres de dessin du shader VK_KHR
- VK_KHR_shader_float16_int8
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- Rotation du sous-groupe de shaders VK_KHR (v10+)
- VK_KHR_vertex_attribute_divisor
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_formats
- Requête de priorité globale VK_EXT
- Priorité globale VK_EXT
- VK_EXT_host_query_reset
- VK_EXT_image_robustesse
- VK_EXT_pipeline_robustness
- VK_EXT_provoquant_le_sommet
- VK_EXT_queue_family_foreign
- Filtre d'échantillonnage VK_EXT_minmax (v10+)
- VK_EXT_scalar_block_layout
- Contrôle de la taille du sous-groupe VK_EXT (v10+)
- VK_EXT_tooling_info
La prise en charge de Vulkan 1.1 dans PanVK a déjà été acceptée dans la branche sur laquelle la version Mesa 25.0 est en cours de développement. De plus, PanVK est inclus par défaut dans la liste des pilotes disponibles pour une utilisation dans Mesa (auparavant, PanVK n'était pas affiché dans la liste des pilotes et une variable d'environnement devait être définie pour l'utiliser). Sur les systèmes ARM, la construction PanVK est activée par défaut. Le code permettant de prendre en charge les extensions individuelles de Vulklan 1.2 a été intégré au noyau Mesa.
De plus, les fonctionnalités du pilote OpenGL ouvert Panfrost, qui est développé pour le GPU ARM Mali en parallèle avec le pilote Vulkan PanVK, ont été étendues :
- Pour améliorer l'efficacité de la bande passante, le pilote dispose d'un mécanisme « d'élimination des transactions » activé par défaut, qui supprime les opérations redondantes (par exemple, les opérations de réécriture de fragments qui n'ont pas changé depuis le dernier rendu sont supprimées).
- Ajout de la prise en charge du rendu incrémental, qui permet de réduire la consommation de mémoire lors du rendu d'un grand nombre d'objets en traitant les tuiles séparément.
- Ajout de la prise en charge du mode AFBC 32x8, utilisé pour optimiser le travail avec le tampon de numérisation dans certains contrôleurs d'affichage.
- La largeur et la hauteur maximales des textures prises en charge ont été augmentées de 8192 32768 à XNUMX XNUMX pixels.
- Ajout de la prise en charge du mode de texturation MTK_FMT_MOD_TILE_16L32S, qui copie les données fragmentées dans un tampon temporaire non fragmenté avant le rendu (utilisé pour fonctionner avec les décodeurs vidéo matériels présents dans les SoC MediaTek).
Source: opennet.ru
