ไมโครซอฟท์โชว์ DirectX 12, รีดประสิทธิภาพจาก GPU ได้ดีขึ้น, ทำงานกับ GPU รุ่นเก่าได้

DirectX

ไมโครซอฟท์เผยข้อมูลของ DirectX 12 ตามสัญญา โดยเบื้องต้นยังเน้นเฉพาะส่วนประกอบหลัก Direct3D 12 เพียงอย่างเดียวครับ

ธีมหลักของ Direct3D 12 คือ “รีดพลังจาก GPU ให้ได้เยอะกว่าเดิม” ทำให้แนวทางการพัฒนาเน้นไปที่ Direct3d 12 เข้าถึงฮาร์ดแวร์ระดับล่างได้มากขึ้น (ลด overhead ของซอฟต์แวร์ลง) โดยแบ่งออกเป็น 3 ส่วนย่อย

  • ปรับการทำงานของ pipeline สำหรับเรนเดอร์กราฟิก ให้กระบวนการทำงานใกล้เคียงกับฮาร์ดแวร์จริงมากขึ้น โดย Direct3D 12 ใช้ออบเจคต์แบบใหม่ที่เรียกว่า pipeline state objects (PSOs)
  • ปรับกระบวนการส่งงานไปยัง GPU (work submission) ให้ตรงกับการทำงานของฮาร์ดแวร์มากขึ้น โดยใช้แนวคิดที่เรียกว่า command list คอยกำหนดว่า GPU จะต้องดึง PSO ตัวไหนไปทำงานอะไรบ้าง
  • ปรับวิธีการกำหนดทรัพยากร (resource) เพิ่มแนวคิดของ descriptor heap/table ของ resource ช่วยให้การจัดการ resource มีประสิทธิภาพมากขึ้น

ผลการทดสอบด้วย 3DMark พบว่า Direct3D 12 รองรับการทำงานแบบมัลติเธร็ดได้ดีขึ้น (กราฟล่าง) และลดอัตราการใช้งาน CPU ลงได้ถึง 50% เมื่อเทียบกับ Direct3D 11 (กราฟบน)

ไมโครซอฟท์ยังไม่เผยรายละเอียดของ DirectX 12 ในส่วนอื่นๆ มากนัก เท่าที่มีข้อมูลคือ

  • DirectX 12 จะออกรุ่นจริงภายในปีนี้ และตั้งเป้าว่าเกมที่เขียนบน DirectX 12 จะวางขายจริงช่วงปลายปี 2015
  • รองรับแพลตฟอร์มของไมโครซอฟท์ทุกตัว ทั้งพีซี แท็บเล็ต มือถือ และ Xbox One (ยังไม่ตอบว่าจะมีบน Windows 7 หรือไม่)
  • ใช้งานได้กับ GPU รุ่นใหม่ๆ “ส่วนใหญ่” ในท้องตลาด
    • NVIDIA บอกว่า GPU ที่รองรับ DirectX 11 จะสามารถใช้งาน DirectX 12 ได้ทุกตัว (ตั้งแต่ Fermi ขึ้นไป)
    • AMD บอกว่า GPU ที่ใช้สถาปัตยกรรม GCN (Radeon HD 7000) จะรองรับ DirectX 12

ที่มา – MSDNNVIDIAArs Technica , blognone.com