Společnost Collabora oznámila implementaci podpory grafického API Vulkan 1.1 v ovladači PanVK (dříve byla podporována pouze verze Vulkan 1.0). Ovladač zajišťuje podporu grafického API Vulkan na zařízeních s GPU ARM založených na architektuře V10, jako jsou Mali-G610 a Mali-G310. Kromě kompatibility s API Vulkan 1.1 byla do kódu PanVK přidána podpora mnoha rozšíření z novějších verzí Vulkan, ale plná kompatibilita s Vulkan 1.2 zatím nebyla dosažena. Byla realizována následující rozšíření:
- 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
Podpora Vulkan 1.1 v PanVK již byla začleněna do větve, na jejímž základě se vyvíjí verze Mesa 25.0. Kromě toho je PanVK zahrnut na seznam ovladačů, které jsou k dispozici pro použití v Mesa jako výchozí (dříve se PanVK nezobrazoval na seznamu ovladačů a pro jeho použití bylo nutné nastavit proměnnou prostředí). Na systémech ARM je sestavení PanVK zahrnuto jako výchozí. Kód pro podporu jednotlivých rozšíření Vulkan 1.2 byl předán k zahrnutí do hlavní části Mesa.
Dále bylo poznamenáno rozšíření funkcionality otevřeného ovladače OpenGL Panfrost, který se vyvíjí pro GPU ARM Mali paralelně s ovladačem Vulkan PanVK:
- Pro zvýšení efektivity využití propustnosti je v ovladači zapnut mechanismus „eliminace transakcí“, který odstraňuje nadbytečné operace (například jsou odstraňovány operace přepsání fragmentů, které se nezměnily od posledního výkresu).
- Byla přidána podpora inkrementálního vykreslování, která umožňuje snížit spotřebu paměti při vykreslování velkého počtu objektů díky oddělenému zpracování fragmentů (dlaždic).
- Byla přidána podpora režimu AFBC 32×8, který se používá pro optimalizaci práce s výstupním bufferem (scan-out buffer) v některých displejových ovladačích.
- Maximálně podporovaná šířka a výška textur byla zvýšena z 8192 na 32768 pixelů.
- Byla přidána podpora pro texturovací režim MTK_FMT_MOD_TILE_16L32S, ve kterém jsou fragmentovaná data kopírována do dočasného nefragmentovaného buffru před vykreslením (používá se pro práci s hardwarovými video dekompresory přítomnými v SoC MediaTek).
Zdroj: opennet.ru
