Collabora ได้ประกาศว่าไดร์เวอร์ PanVK รองรับ API กราฟิก Vulkan 1.1 แล้ว (ก่อนหน้านี้รองรับเฉพาะ Vulkan 1.0 เท่านั้น) ไดรเวอร์รองรับ API กราฟิก Vulkan บนอุปกรณ์ที่มี GPU ARM ที่ใช้สถาปัตยกรรม V10 เช่น Mali-G610 และ Mali-G310 นอกเหนือจากความเข้ากันได้กับ Vulkan 1.1 API แล้ว โค้ด PanVK ยังเพิ่มการรองรับส่วนขยายต่างๆ มากมายจาก Vulkan เวอร์ชันใหม่กว่าอีกด้วย แต่ยังไม่รองรับความเข้ากันได้อย่างสมบูรณ์กับ Vulkan 1.2 ส่วนขยายต่อไปนี้ได้รับการนำมาใช้:
- VK_KHR_8bit_storage
- การจัดสรรเฉพาะ VK_KHR
- VK_KHR_global_priority
- VK_KHR_index_type_uint8
- VK_KHR_map_memory2
- VK_KHR_มัลติวิว (v10+)
- พารามิเตอร์การวาด VK_KHR_shader
- VK_KHR_shader_float16_int8
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extend_instruction
- VK_KHR_shader_subgroup_หมุน (v10+)
- VK_KHR_vertex_attribute_divisor
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_รูปแบบ
- VK_EXT_global_priority_query
- VK_EXT_global_priority
- VK_EXT_host_query_reset
- VK_EXT_image_ความทนทาน
- VK_EXT_pipeline_robustness
- VK_EXT_กระตุ้นจุดสุดยอด
- VK_EXT_queue_family_ต่างประเทศ
- VK_EXT_sampler_filter_minmax (เวอร์ชัน 10 ขึ้นไป)
- VK_EXT_scalar_block_layout
- VK_EXT_subgroup_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 ซึ่งได้รับการพัฒนาสำหรับ ARM Mali GPU ควบคู่ไปกับไดรเวอร์ Vulkan PanVK ได้รับการขยายเพิ่มเติม:
- เพื่อปรับปรุงประสิทธิภาพแบนด์วิดท์ ไดรเวอร์มีกลไก "การกำจัดธุรกรรม" ที่เปิดใช้งานตามค่าเริ่มต้น ซึ่งจะยกเลิกการดำเนินการซ้ำซ้อน (ตัวอย่างเช่น การดำเนินการเพื่อเขียนใหม่ส่วนต่างๆ ที่ไม่มีการเปลี่ยนแปลงตั้งแต่การเรนเดอร์ครั้งสุดท้ายจะถูกยกเลิก)
- เพิ่มการรองรับสำหรับการเรนเดอร์แบบเพิ่มทีละน้อย ซึ่งช่วยลดการใช้หน่วยความจำเมื่อเรนเดอร์วัตถุจำนวนมากโดยการประมวลผลไทล์แยกจากกัน
- เพิ่มการรองรับสำหรับโหมด AFBC 32x8 ใช้เพื่อเพิ่มประสิทธิภาพการทำงานกับบัฟเฟอร์สแกนเอาต์ในตัวควบคุมการแสดงผลบางตัว
- ความกว้างและความสูงของพื้นผิวที่รองรับสูงสุดได้รับการเพิ่มจาก 8192 เป็น 32768 พิกเซล
- เพิ่มการสนับสนุนสำหรับโหมดการสร้างพื้นผิว MTK_FMT_MOD_TILE_16L32S ซึ่งจะคัดลอกข้อมูลที่กระจัดกระจายไปยังบัฟเฟอร์ชั่วคราวที่ไม่กระจัดกระจายก่อนการเรนเดอร์ (ใช้เพื่อทำงานกับตัวถอดรหัสวิดีโอฮาร์ดแวร์ที่มีอยู่ใน MediaTek SoC)
ที่มา: opennet.ru
