Tvrtka Collabora je najavila implementaciju podrške za grafički API Vulkan 1.1 u PanVK drajveru (ranije je bila podržana samo verzija Vulkan 1.0). Drajver omogućava podršku za grafički API Vulkan na uređajima s ARM GPU-om temeljenim na V10 arhitekturi, poput Mali-G610 i Mali-G310. Osim kompatibilnosti s API Vulkan 1.1, PanVK kod sada uključuje podršku za mnoge ekstenzije iz novijih verzija Vulkana, ali puna kompatibilnost s Vulkan 1.2 još uvijek nije postignuta. Implementirane su sljedeće ekstenzije:
- 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
Podrška za Vulkan 1.1 u PanVK već je uključena u grananje na kojem se temelji razvoj Mesa 25.0. Osim toga, PanVK je uključen u popis drajvera koji su dostupni za korištenje u Mesu prema zadanim postavkama (ranije PanVK nije bio prikazan na popisu drajvera i za njegovo korištenje bila je potrebna postavka varijable okruženja). Na ARM sustavima, PanVK je prema zadanim postavkama uključen. Kod za podršku pojedinih ekstenzija Vulkana 1.2 je poslan na uključivanje u glavni sastav Mese.
Dodatno, primjećena je ekstenzija funkcionalnosti otvorenog OpenGL drajvera Panfrost, koji se razvija za ARM Mali GPU paralelno s Vulkan drajverom PanVK:
- Kako bi se poboljšala učinkovitost korištenja propusnosti, u drajveru je prema zadanim postavkama uključen mehanizam 'eliminacije transakcija', koji odbacuje suvišne operacije (na primjer, operacije prepisivanja fragmenta koje se nisu promijenile od posljednjeg prikazivanja).
- Dodana je podrška za inkrementalno prikazivanje, koja omogućava smanjenje potrošnje memorije prilikom renderiranja velikog broja objekata dijeljenjem obrade fragmenta (tile).
- Dodana je podrška za AFBC 32×8 mod, koji se koristi za optimizaciju rada s prednjim izlaznim baferom (scan-out buffer) u nekim kontrolerima za prikaz.
- Maksimalna podržavana širina i visina tekstura povećana je s 8192 na 32768 piksela.
- Dodana je podrška za način teksturiranja MTK_FMT_MOD_TILE_16L32S, pri čemu se fragmentirani podaci kopiraju u privremeni nefragmentirani bafer prije renderiranja (koristi se za rad s hardverskim video dekoderima prisutnim u SoC MediaTek).
Izvor: opennet.ru
