นักพัฒนา Collabora ยังไม่หยุดทำงานและในช่วงไม่กี่เดือนที่ผ่านมาพวกเขาให้ความสำคัญกับเรื่องนี้มากและครั้งนี้ก็ไม่ใช่ข้อยกเว้นเพราะเมื่อไม่นานมานี้ ประกาศว่าเขาประกาศการใช้งานในไดรเวอร์ Panfrost ของการสนับสนุน OpenGL 3.1 สำหรับ Midgard GPUs (Mali-T6xx, Mali-T7xx, Mali-T8xx) และ Bifrost GPUs (Mali G3x, G5x, G7x) รวมถึงรองรับ OpenGL ES 3.0 สำหรับ Bifrost GPUs
การเปลี่ยนแปลงเหล่านี้ คาดว่าจะรวมอยู่ในรุ่น Mesa 21.0ซึ่งกำลังอยู่ในขั้นตอนการเปิดตัวผู้สมัคร
ควรจำไว้ว่านักพัฒนา Collabora ทำงานมานานในการใช้งานคอนโทรลเลอร์สำหรับตารางและตัวอย่างของสิ่งนี้คืออดีต ตัวควบคุมโต๊ะแกลเลียม, ที่ใช้ชั้นกลาง เพื่อจัดระเบียบ OpenCL 1.2 และ OpenGL 3.3 API เกี่ยวกับไดรเวอร์ที่รองรับ DirectX 12 (D3D12) และซอร์สโค้ดเผยแพร่ภายใต้ใบอนุญาต MIT
ตัวควบคุมที่เสนอ ช่วยให้คุณใช้ Mesa บนอุปกรณ์ต่างๆ ซึ่งเข้ากันไม่ได้ในตอนแรก ด้วย OpenCL และ OpenGL และยังเป็นตำแหน่งเริ่มต้นในการพอร์ตแอปพลิเคชัน OpenGL / OpenCL เพื่อทำงานบน D3D12
ในส่วนของไดรเวอร์ Panfrost ใหม่จะสังเกตได้ว่า GPU Midgard และ Bifrost ใช้โครงสร้างข้อมูลร่วมกัน สำหรับฟังก์ชันคงที่ แต่ Bifrost ใช้ชุดคำสั่งที่แตกต่างกันโดยพื้นฐานซึ่งทำให้การใช้งานฟังก์ชันสำหรับข้อมูล GPU แบบซิงโครนัสทำได้ยาก
ในทางสถาปัตยกรรม Bifrost ใช้โครงสร้างข้อมูลคงที่ส่วนใหญ่กับ Midgard แต่แนะนำชุดคำสั่งใหม่ งานของเราในการนำ OpenGL ES 3.0 ไปใช้กับ Bifrost สะท้อนให้เห็นถึงแผนกนี้
คุณลักษณะฟังก์ชันคงที่บางอย่างเช่นการสร้างอินสแตนซ์และการตอบสนองการแปลงจะทำงานโดยไม่มีการเปลี่ยนแปลง Bifrost ที่เฉพาะเจาะจงอย่างที่เราทำใน Midgard คุณสมบัติการทำเงาอื่น ๆ เช่นอ็อบเจ็กต์บัฟเฟอร์ที่เหมือนกันจำเป็นต้องมีการใช้งาน "ตั้งแต่เริ่มต้น" ในคอมไพเลอร์ Bifrost ซึ่งเป็นงานที่ทำได้ง่ายโดยการแสดงระดับกลางที่เป็นผู้ใหญ่ของคอมไพเลอร์พร้อมการสนับสนุนการสร้างชั้นหนึ่ง
เช่น ฟังก์ชั่นคงที่ใช้งานแล้วสำหรับ Midgardเช่น 'ข้อเสนอแนะการเปลี่ยนแปลง' สามารถโอนไปยัง Bifrost โดยไม่มีการเปลี่ยนแปลง ในขณะที่คุณสมบัติเช่น Multiple Render Targets (MRT) ถูก จำกัด เฉพาะการเปลี่ยนแปลง Bifrost บางอย่าง
ในขณะเดียวกันการดำเนินการ shader อื่น ๆ เช่นอ็อบเจ็กต์บัฟเฟอร์แบบรวมจำเป็นต้องมีการใช้งานใหม่สำหรับคอมไพเลอร์ Bifrost shader
สิ่งนี้เป็นไปตามการสนับสนุน OpenGL ES 3.0 ใน Midgard ที่มาถึงในช่วงฤดูร้อนเช่นเดียวกับการสนับสนุน OpenGL ES 2.0 เริ่มต้นที่เพิ่งเปิดตัวสำหรับ Bifrost ขณะนี้ OpenGL ES 3.0 ได้รับการทดสอบกับ Mali G52 ในการผสานรวมอย่างต่อเนื่องของ Mesa โดยได้รับอัตราการส่งผ่าน 99.9% ในการทดสอบโปรแกรมคุณภาพ DrawElements ที่เกี่ยวข้อง
อย่างไรก็ตามคุณสมบัติอื่น ๆ เช่นเป้าหมายการแสดงผลหลายรายการจำเป็นต้องใช้รหัสเฉพาะจาก Bifrost ในขณะที่ใช้ประโยชน์จากรหัสอื่น ๆ ที่แชร์กับ Midgard ถึงกระนั้นงานก็ดำเนินไปเร็วขึ้นมากในครั้งที่สองซึ่งเป็นข้อพิสูจน์ถึงพลังของรหัสที่ใช้ร่วมกัน แต่คุณไม่จำเป็นต้อง จำกัด swap ของคุณให้อยู่ใน Panfrost GPUs เท่านั้น ไดรเวอร์โอเพนซอร์สสามารถแชร์โค้ดระหว่างผู้ขาย
นอกจากนี้ในประกาศยังมีการกล่าวถึง หลีกเลี่ยงการทำซ้ำงานบางส่วนโดยใช้การแทนค่ากลางในคอมไพเลอร์ ซึ่งเมื่อใช้ร่วมกับโค้ดที่ใช้ร่วมกันจะช่วยเพิ่มความเร็วในการพัฒนาได้อย่างมากและด้วยวิธีนี้โค้ดนี้ไม่เพียง แต่จะใช้กับตระกูล GPU เท่านั้น แต่ยังรวมถึงคอนโทรลเลอร์ที่แตกต่างกันด้วย
โดยเฉพาะอย่างยิ่งนักพัฒนากล่าวว่าในการใช้ OpenGL บนระบบเดสก์ท็อปไดรเวอร์ Panfrost จำเป็นต้องใช้ส่วนประกอบ Mesa ที่พร้อมใช้งานในขณะที่ไดรเวอร์ที่เป็นกรรมสิทธิ์ของ Mali นั้น จำกัด ให้รองรับเฉพาะ OpenGL ES เท่านั้น
อย่างไรก็ตามการสนับสนุนเดสก์ท็อป OpenGL 3.1 นั้นแทบจะ "ฟรี" สำหรับเราในฐานะตัวควบคุมเมซาต้นน้ำโดยใช้ประโยชน์จากโครงสร้างพื้นฐานทั่วไป
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม เกี่ยวกับการใช้งาน Panfrost ใหม่ที่เสนอโดยนักพัฒนา Collabora คุณสามารถตรวจสอบรายละเอียดได้ ในลิงค์ต่อไปนี้.