Компания Collabora объявила о реализации в драйвере PanVK поддержки графического API Vulkan 1.1 (ранее поддерживалась только версия Vulkan 1.0). Драйвер обеспечивает поддержку графического API Vulkan на устройствах с GPU ARM на базе архитектуры V10, таких как Mali-G610 и Mali-G310. Помимо совместимости с API Vulkan 1.1 в код PanVK добавлена поддержка многих расширений из более новых версий Vulkan, но полная совместимость с Vulkan 1.2 пока не достигнута. Реализованы следующие расширения:
VK_KHR_8bit_storage
VK_KHR_dedicated_allocation
VK_KHR_global_priority
VK_KHR_index_type_uint8
[VK_KHR_map_memory2](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_map_memory2.html)
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](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_KHR_zero_initialize_workgroup_memory.html)
VK_EXT_4444_formats
VK_EXT_global_priority_query
[VK_EXT_global_priority](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_EXT_global_priority.html)
VK_EXT_host_query_reset
VK_EXT_image_robustness
[VK_EXT_pipeline_robustness](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_EXT_pipeline_robustness.html)
[VK_EXT_provoking_vertex](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_EXT_provoking_vertex.html)
VK_EXT_queue_family_foreign
VK_EXT_sampler_filter_minmax
(v10+)VK_EXT_scalar_block_layout
[VK_EXT_su](https://registry.khronos.org/vulkan/specs/latest/man/html/VK_EXT_subgroup_size_control.html)
bgroup_size_control
(v10+)VK_EXT_tooling_info
Поддержка Vulkan 1.1 в PanVK уже принята в ветку, на базе которой разрабатывается релиз Mesa 25.0. Кроме того, PanVK включён в список драйверов, доступных для использования в Mesa по умолчанию (ранее PanVK не отображался в списке драйверов и для его использования нужно было выставлять переменную окружения). На системах ARM сборка PanVK включена по умолчанию. Код для поддержки отдельных расширений Vulklan 1.2 передан для включения в основной состав Mesa.
Дополнительно отмечено расширение функциональности открытого OpenGL-драйвера Panfrost, разрабатываемого для GPU ARM Mali параллельно с Vulkan-драйвером PanVK:
- Для повышения эффективности использования пропускной способности в драйвере включён по умолчанию механизм "transaction elimination", отбрасывающий избыточные операции (например, отбрасываются операции перезаписи фрагментов, не изменившимися с прошлой отрисовки).
- Добавлена поддержка инкрементальной отрисовки, позволяющая снизить потребление памяти при рендеринге большого числа объектов за счёт раздельной обработки фрагментов (tile).
- Добавлена поддержка режима AFBC 32x8, применяемого для оптимизации работы с буфером вывода (scan-out buffer) в некоторых дисплейных контроллерах.
- Максимально поддерживаемая ширина и высота текстур увеличена с 8192 до 32768 пикселей.
- Добавлена поддержка режима текстурирования MTK_FMT_MOD_TILE_16L32S, при котором фрагментированные данные копируются во временный нефрагментированный буфер перед отрисовкой (используется для работы с аппаратными декодировщиками видео, присутствующими в SoC MediaTek).
Источник: https://www.opennet.ru/opennews/art.shtml?num=62674