บริษัทวาล์ว
เมื่อการทดสอบเสร็จสิ้นและฟังก์ชันการทำงานเสร็จสิ้นแล้ว จะมีการวางแผน ACO เพื่อรวมไว้ในองค์ประกอบหลักของ Mesa
โค้ดที่นำเสนอของ Valve มุ่งเป้าไปที่การสร้างโค้ดที่เหมาะสมที่สุดเท่าที่จะเป็นไปได้สำหรับเชเดอร์แอปพลิเคชันเกม ตลอดจนบรรลุความเร็วในการคอมไพล์ที่สูงมาก คอมไพเลอร์เชเดอร์ของ Mesa ใช้ส่วนประกอบ LLVM ซึ่งไม่ได้ให้ความเร็วในการคอมไพล์ตามที่ต้องการ และไม่อนุญาตให้มีการควบคุมโฟลว์การควบคุมทั้งหมด ซึ่งก่อให้เกิดข้อผิดพลาดร้ายแรงในอดีต นอกจากนี้ การย้ายออกจาก LLVM ทำให้สามารถนำการวิเคราะห์ความคลาดเคลื่อนเชิงรุกมาใช้ได้มากขึ้น และการควบคุมโหลดรีจิสเตอร์ที่ละเอียดยิ่งขึ้น ซึ่งช่วยให้คุณสร้างไฟล์ปฏิบัติการที่มีประสิทธิภาพมากขึ้นได้
ACO เขียนด้วยภาษา C++ ซึ่งออกแบบโดยคำนึงถึงการคอมไพล์ JIT และใช้โครงสร้างข้อมูลแบบวนซ้ำอย่างรวดเร็ว หลีกเลี่ยงโครงสร้างแบบพอยน์เตอร์ เช่น รายการที่เชื่อมโยงและลูกโซ่ def-use การแสดงโค้ดระดับกลางนั้นขึ้นอยู่กับทั้งหมด
ปัจจุบัน รองรับเฉพาะพิกเซล (แฟรกเมนต์) และตัวเชเดอร์การประมวลผลบน GPU แบบแยก AMD (dGPU VI+) อย่างไรก็ตาม ACO รวบรวมเชเดอร์อย่างถูกต้องสำหรับเกมทั้งหมดที่ทดสอบ รวมถึงเชเดอร์ที่ซับซ้อนจาก Shadow of the Tomb Raider และ Wolfenstein II ต้นแบบ ACO ที่เสนอสำหรับการทดสอบนั้นเร็วกว่าคอมไพเลอร์เชเดอร์ AMDGPU เกือบสองเท่าในแง่ของความเร็วในการคอมไพล์ และแสดงให้เห็นถึงการเพิ่มขึ้นของ FPS ในบางเกมเมื่อทำงานบนระบบที่มีไดรเวอร์ RADV
ที่มา: opennet.ru