บริษัทร่วมมือ
ไดรเวอร์ที่นำเสนอช่วยให้คุณสามารถใช้ Mesa บนอุปกรณ์ที่ไม่รองรับ OpenCL และ OpenGL โดยกำเนิด และยังเป็นจุดเริ่มต้นสำหรับการย้ายแอปพลิเคชัน OpenGL/OpenCL เพื่อทำงานบน D3D12 สำหรับผู้ผลิต GPU ระบบย่อยทำให้สามารถให้การสนับสนุน OpenCL และ OpenGL ได้ หากมีเฉพาะไดรเวอร์ที่รองรับ D3D12 เท่านั้น
หนึ่งในแผนเร่งด่วนคือการบรรลุผลสำเร็จในการผ่านการทดสอบความเข้ากันได้ของ OpenCL 1.2 และ OpenGL 3.3 อย่างเต็มรูปแบบ การตรวจสอบความเข้ากันได้กับแอปพลิเคชัน และการรวมการพัฒนาไว้ในองค์ประกอบหลักของ Mesa การพัฒนาดำเนินการร่วมกับวิศวกรของ Microsoft ที่กำลังพัฒนา
การใช้งานประกอบด้วยไดรเวอร์ Gallium, คอมไพเลอร์ OpenCL, รันไทม์ OpenCL และคอมไพเลอร์เชเดอร์ NIR-to-DXIL ซึ่งจะแปลงการแสดงระดับกลางของเชเดอร์ NIR ที่ใช้ใน Mesa ให้เป็นรูปแบบไบนารี DXIL (DirectX Intermediate Language) ที่รองรับใน DirectX 12 และอิงตาม บิตโค้ด LLVM 3.7 (
แหล่งที่มาที่มีส่วนขยาย OpenCL จะถูกคอมไพล์โดยใช้เสียงดังกราวเป็นรหัสหลอกระดับกลาง LLVM (LLVM IR) ซึ่งจะถูกแปลงเป็นการแสดงระดับกลางของเคอร์เนล OpenCL ในรูปแบบ SPIR-V แกนในการเป็นตัวแทน SPIR-V จะถูกส่งผ่านไปยัง Mesa ซึ่งแปลเป็นรูปแบบ NIR ปรับให้เหมาะสมและส่งไปยัง NIR-to-DXIL เพื่อสร้างตัวเชเดอร์การคำนวณในรูปแบบ DXIL เหมาะสำหรับการประมวลผลบน GPU ที่ใช้รันไทม์ที่ใช้ DirectX 12
แทนที่จะเป็น Clover การใช้งาน OpenCL ที่ใช้ใน Mesa จะมีการเสนอรันไทม์ OpenCL ใหม่ ซึ่งช่วยให้สามารถแปลงโดยตรงไปยัง DirectX 12 API ได้มากขึ้น
ไดรเวอร์ OpenCL และ OpenGL ได้รับการจัดเตรียมโดยใช้อินเทอร์เฟซ Gallium ที่ให้ไว้ใน Mesa ซึ่งช่วยให้คุณสามารถสร้างไดรเวอร์โดยไม่ต้องลงรายละเอียดเฉพาะของ OpenGL และแปลการเรียก OpenGL ในสาระสำคัญให้ใกล้เคียงกับกราฟิกดั้งเดิมที่ GPU สมัยใหม่ใช้งานมากขึ้น ไดรเวอร์ Gallium ยอมรับคำสั่ง OpenGL และเมื่อใช้ตัวแปล NIR-to-DXIL
สร้างบัฟเฟอร์คำสั่งที่ดำเนินการบน GPU โดยใช้ไดรเวอร์ D3D12
ที่มา: opennet.ru