Ettevõte Collabora kuulutas välja PanVK draiveri, mis toetab graafika API-d Vulkan 1.1 (varasemalt toetas ainult versioon Vulkan 1.0). Draiver tagab graafika API Vulkan toe ARM GPU-dele, mis põhinevad V10 arhitektuuril, nagu Mali-G610 ja Mali-G310. Peale Vulkan 1.1 API ühilduvuse lisati PanVK koodi toetust paljudele laienditele uuemates Vulkan versioonides, kuid täielikku ühilduvust Vulkan 1.2-ga on veel saavutatud. Rakendatud on järgmised laiendused:
- 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
Vulkan 1.1 toe PanVK-s on juba võetud haru, mille alusel arendatakse välja Mesa 25.0 versiooni. Lisaks on PanVK kaasatud drivreid, mida kasutatakse Mesa-s vaikimisi (varem ei olnud PanVK draiverite nimekirjas ja selle kasutamiseks tuli seadistada keskkonnamuutuja). ARM-süsteemides on PanVK vaikimisi sees. Kood, mis toetab eraldi Vulkan 1.2 laiendite lisamist, on edastatud, et see lisataks Mesa põhikoosseisu.
Lisaks on täheldatud, et avatud OpenGL-draiveri Panfrost (arendatud ARM Mali GPU-de jaoks) funktsionaalsuse täiendusi tehakse paralleelselt Vulkan-draiveriga PanVK:
- Läbivuse (bandwidth) efektiivsuse suurendamiseks on draiveris vaikimisi aktiveeritud mehhanism „transaction elimination”, mis kõrvaldab liigsed toimingud (nt kõrvaldatakse üleskirjutavad operatsioonid, mis ei ole muutunud pärast eelmist renderdamist).
- Lisatud on toetuseks inkrementaalne renderdamine, mis vähendab mälu tarbimist suure hulga objektide renderdamisel, töötades eraldi fragmentide (tile) kallal.
- Lisatud on AFBC 32×8 režiimi tugi, mida kasutatakse väljundpuhvri (scan-out buffer) töötamise optimeerimiseks mõnedes ekraanide kontrollerites.
- Maksimaalselt toetatud tekstuuri laius ja kõrgus on suurendatud 8192 pikslilt 32768 pikslile.
- Lisatud on MTK_FMT_MOD_TILE_16L32S tekstureerimise režiimi tugi, kus fragmentitud andmed kopeeritakse renderdamise eel ajutisse mittefragmentitud puhvrit (kasutatakse MediaTeki SoC-is sisalduvate riistvaralistest videodekooderitest).
Allikas: opennet.ru
