นักพัฒนาของ Collabora ปล่อยออกมา เมื่อเร็ว ๆ นี้ผ่านโฆษณา การใช้ตัวควบคุมแบบเปิด Gallium D3D12ซึ่งใช้เลเยอร์เพื่อจัดระเบียบ OpenGL บน DirectX 12 (D3D12) API ในองค์ประกอบหลักของ Mesa
ในเวลาเดียวกัน ประกาศว่าไดรเวอร์ผ่านการทดสอบความเข้ากันได้กับ OpenGL 3.3 เรียบร้อยแล้ว เมื่อทำงานกับ WARP (ซอฟต์แวร์แรสเตอร์) และไดรเวอร์ NVIDIA D3D12
เรารู้สึกตื่นเต้นที่จะแจ้งให้ทราบว่าเราเพิ่งผ่านการทดสอบความสอดคล้อง OpenGL 3.3 และอัปเดตโค้ดใน Mesa 3D!
ตัวควบคุม อาจเป็นประโยชน์ในการใช้ Mesa บนอุปกรณ์ที่มีตัวควบคุม D3D12 เท่านั้น และเป็นจุดเริ่มต้นสำหรับการพอร์ตแอปพลิเคชัน OpenGL เพื่อทำงานบน D3D12 API โดยเฉพาะอย่างยิ่งไดรเวอร์สามารถใช้เพื่อจัดระเบียบการทำงานของแอพพลิเคชั่นกราฟิกในสภาพแวดล้อมที่ควบคุมโดยระบบย่อย WSL (Windows Subsystem for Linux) ซึ่งช่วยให้มั่นใจได้ว่าจะเปิดไฟล์ปฏิบัติการของ Linux บน Windows ได้
หนึ่งในแอปพลิเคชันหลักที่โดดเด่นคือการรองรับ Photoshop ซึ่งตามที่กล่าวไว้ในโฆษณาอาจไม่ใช่เรื่องน่าแปลกใจ แต่แรงจูงใจอย่างหนึ่งสำหรับงานนี้คือสามารถเรียกใช้แอปพลิเคชันเช่น Photoshop บนอุปกรณ์ Windows ได้โดยไม่ต้องทำงานร่วม . รวมกับ OpenGL.
ฉันยินดีที่จะรายงานว่า Microsoft ได้เปิดตัวชุดความเข้ากันได้ซึ่งใช้งานของเราเพื่อให้การสนับสนุน OpenGL (และ OpenCL) ตอนนี้ Photoshop สามารถทำงานบน Windows บน ARM CPU ได้แล้ว! เป็นเรื่องน่าตื่นเต้นมากที่ได้เห็นแอปรายละเอียดสูงเช่นนี้ได้รับประโยชน์จากงานของเรา!
การพัฒนาดำเนินการร่วมกับวิศวกรของ Microsoft เพื่อพัฒนาเครื่องมือเช่น D3D11On12 เพื่อถ่ายโอนเกมไปยังไลบรารี D3D11 และ D3D12 D3D12TranslationLayer โดยใช้พื้นฐานกราฟิกมาตรฐานที่ด้านบนของ D3D12
จากโครงการที่อยู่ระหว่างการพิจารณา ไมโครซอฟต์ได้เตรียมเลเยอร์กลางไว้แล้ว สิ่งที่ทำให้เป็นไปได้ เรียกใช้แอปพลิเคชันที่ใช้ OpenGL บนอุปกรณ์ Windows ที่ไม่ได้ให้การสนับสนุนอย่างเต็มที่สำหรับ OpenGL โดยเฉพาะอย่างยิ่งมันเป็นไปได้ที่จะรับประกันการทำงานของ Photoshop บนอุปกรณ์ Windows ที่มีโปรเซสเซอร์ ARM
ฉันต้องการชี้ให้เห็นว่าการอนุมัติ OpenGL CTS ไม่จำเป็นต้องเหมือนกับการปฏิบัติตามอย่างเป็นทางการ มีรายละเอียดบางอย่างเกี่ยวกับวิธีปฏิบัติตามอย่างเป็นทางการกับการใช้งานแบบเลเยอร์ที่มีความซับซ้อนและฉันจะทิ้งคำถามเกี่ยวกับการปฏิบัติตามอย่างเป็นทางการของ Microsoft และ Khronos
การใช้งานรวมถึงไดรเวอร์สำหรับ Mesa และคอมไพเลอร์ NIR-to-DXIL shader (รันไทม์ D3D12) ซึ่งแปลง NIR Shader ระดับกลางของ Mesa ให้เป็นไปตาม DirectX 12, LLVM 3.7 bitcode-based DirectX Intermediate Language (DXIL) รูปแบบไบนารี (DirectX ของ Microsoft คอมไพเลอร์ Shader เป็นทางแยกของ LLVM 3.7)
ควรแก้ไขปัญหารันไทม์ D3D12 ก่อนส่งผลลัพธ์ เรากำลังทำงานร่วมกับ Microsoft เพื่อแก้ไขปัญหาเหล่านี้ตามความเหมาะสม การแก้ไขเหล่านี้อาจใช้เวลาสักครู่ในการเข้าถึงบิวด์ Windows และสำหรับผู้ใช้ปลายทาง แต่จะปรากฏขึ้นในที่สุด
แต่สำหรับผู้ขายคอนโทรลเลอร์ D3D12 และต่ำกว่าสิ่งต่าง ๆ ก็ซับซ้อน ...
ประการแรกเราไม่สามารถแยกความแตกต่างระหว่างปัญหาไดรเวอร์ของผู้จำหน่ายและปัญหาฮาร์ดแวร์ได้เสมอไป และสิ่งที่แย่กว่านั้นคือการพัฒนาโดย บริษัท บุคคลที่สามเราจึงมีข้อมูลเพียงเล็กน้อยเกี่ยวกับเรื่องนี้
ตัวควบคุม Mesa ใช้อินเทอร์เฟซ Gallium ยอมรับคำสั่ง OpenGL และใช้ตัวแปล NIR เป็น DXIL สร้างคำสั่ง D3D12 ที่ทำงานบน GPU โดยใช้ไดรเวอร์ระบบ D3D12 ส่วนประกอบต่าง ๆ ได้รับการพัฒนาเพื่อให้แน่ใจว่า OpenCL ทำงานบน D3D12 รวมถึงคอมไพเลอร์ OpenCL และรันไทม์ OpenCL
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.