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

by mk
21 March 2014 - 02:08

ไมโครซอฟท์เผยข้อมูลของ 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

ที่มา - MSDN, NVIDIA, Ars Technica

Blognone Jobs Premium