La société Collabora a annoncé l'implémentation du support de l'API graphique Vulkan 1.1 dans le pilote PanVK (auparavant, seule la version Vulkan 1.0 était supportée). Le pilote assure le support de l'API graphique Vulkan sur des appareils avec GPU ARM basés sur l'architecture V10, tels que Mali-G610 et Mali-G310. En plus de la compatibilité avec l'API Vulkan 1.1, le code de PanVK a ajouté le support de nombreuses extensions des versions plus récentes de Vulkan, mais la compatibilité complète avec Vulkan 1.2 n'a pas encore été atteinte. Les extensions suivantes ont été mises en œuvre :
- VK_KHR_8bit_storage
- VK_KHR_dedicated_allocation
- VK_KHR_global_priority
- VK_KHR_index_type_uint8
- VK_KHR_map_memory2
- VK_KHR_multiview (v10+)
- VK_KHR_shader_draw_parameters
- VK_KHR_shader_float16_int8
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate (v10+)
- VK_KHR_vertex_attribute_divisor
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_formats
- VK_EXT_global_priority_query
- VK_EXT_global_priority
- VK_EXT_host_query_reset
- VK_EXT_image_robustness
- VK_EXT_pipeline_robustness
- VK_EXT_provoking_vertex
- VK_EXT_queue_family_foreign
- VK_EXT_sampler_filter_minmax (v10+)
- VK_EXT_scalar_block_layout
- VK_EXT_subgroup_size_control (v10+)
- VK_EXT_tooling_info
Le support de Vulkan 1.1 dans PanVK a déjà été intégré à la branche sur laquelle la version Mesa 25.0 est en développement. De plus, PanVK est inclus dans la liste des pilotes disponibles par défaut dans Mesa (auparavant, PanVK n'apparaissait pas dans la liste des pilotes et nécessitait la définition d'une variable d'environnement pour être utilisé). Dans les systèmes ARM, la compilation de PanVK est activée par défaut. Le code pour le support de certaines extensions Vulkan 1.2 a été soumis pour être intégré dans la version principale de Mesa.
Il est également à noter l'extension des fonctionnalités du pilote OpenGL open-source Panfrost, développé pour les GPU ARM Mali en parallèle avec le pilote Vulkan PanVK :
- Pour améliorer l'efficacité de l'utilisation de la bande passante, le mécanisme « transaction elimination » est activé par défaut dans le pilote, éliminant les opérations redondantes (par exemple, les opérations de réécriture des fragments qui n'ont pas changé depuis le dernier rendu sont ignorées).
- Le support du rendu incrémental a été ajouté, permettant de réduire la consommation de mémoire lors du rendu d'un grand nombre d'objets grâce à un traitement séparé des fragments (tile).
- Le support du mode AFBC 32×8 a été ajouté, utilisé pour optimiser le fonctionnement avec le tampon de sortie (scan-out buffer) dans certains contrôleurs d'affichage.
- La largeur et la hauteur maximales des textures prises en charge ont été augmentées de 8192 à 32768 pixels.
- Le support du mode de texturisation MTK_FMT_MOD_TILE_16L32S a été ajouté, dans lequel les données fragmentées sont copié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
