Contents

DirectX 11 กับ DirectX 12: อะไรคือความแตกต่างและคุณควรใช้อันไหน?

DirectX 12 เปิดตัวพร้อมกับ Windows 10 ใน ด้วยการเปิดตัว DirectX 12 ของ Microsoft ได้เปิดศักราชใหม่สำหรับนักเล่นเกมและนักพัฒนาเกม ความสามารถในการลดโอเวอร์เฮดของ CPU ในขณะที่เพิ่มประสิทธิภาพ GPU นั้น DirectX 12 ได้สร้างชื่อให้กับตัวเองอย่างรวดเร็ว

จริงๆ แล้ว อาจมีคนสงสัยว่าการเพิ่มประสิทธิภาพสามารถทำได้อย่างตรงไปตรงมาหรือไม่เมื่อย้ายจาก DirectX 11 ไปยัง DirectX 12 รุ่นต่อๆ ไป เพื่อให้เข้าใจถึงการเปลี่ยนแปลงนี้ชัดเจนยิ่งขึ้น จะต้องระมัดระวังในการตรวจสอบความแตกต่างที่มีอยู่ระหว่าง DirectX ซ้ำทั้งสองนี้

DirectX ของ Microsoft คืออะไร

/th/images/untitled-design-1.jpg

โดยสรุป Microsoft DirectX ถือเป็นชุดเครื่องมือพัฒนาซอฟต์แวร์ที่อำนวยความสะดวกในการดำเนินการด้านมัลติมีเดียต่างๆ ภายในแอปพลิเคชัน โดยเฉพาะโปรแกรมเกมที่ใช้งานทั่วทั้งระบบ Windows และ Xbox ตามภาพประกอบ อาจเป็นประโยชน์ที่จะเจาะลึกแนวคิดของ Application Programming Interfaces หรือ API ซึ่งเป็นชุดโปรโตคอลที่ช่วยให้การสื่อสารระหว่างส่วนประกอบต่างๆ ของระบบปฏิบัติการราบรื่นขึ้น ซึ่งจะช่วยปรับปรุงการโต้ตอบทางโปรแกรม

Application Programming Interface (API) อำนวยความสะดวกในการสื่อสารระหว่างแอพพลิเคชั่นซอฟต์แวร์หลายตัวโดยการแลกเปลี่ยนข้อมูลในรูปแบบที่มีโครงสร้าง โดยพื้นฐานแล้ว API ทำหน้าที่เป็นสื่อกลาง ซึ่งช่วยให้ระบบต่างๆ สามารถโต้ตอบได้อย่างราบรื่น แนวคิดนี้ได้รับการสำรวจเพิ่มเติมในการตรวจสอบ API อย่างครอบคลุม โดยเราจะเจาะลึกฟังก์ชันการทำงานและการใช้ประโยชน์ต่างๆ ในอุตสาหกรรมที่หลากหลาย พูดง่ายๆ ก็คือ ลองจินตนาการถึงการใช้โทรศัพท์เพื่อส่งและรับข้อความ ในทำนองเดียวกัน API ช่วยให้สามารถถ่ายโอนข้อมูลจากโปรแกรมหนึ่งไปยังอีกโปรแกรมหนึ่งได้ ทำให้ผู้ใช้สามารถเข้าถึงและประมวลผลข้อมูลได้อย่างมีประสิทธิภาพ

อะไรคือความแตกต่างระหว่าง DirectX 11 และ DirectX 12?

DirectX 11 และ DirectX 12 แสดงถึงการทำซ้ำที่แตกต่างกันในวิวัฒนาการของ API กราฟิกของ Microsoft สำหรับการพัฒนาเกม ความแตกต่างหลักอยู่ที่การโต้ตอบกับสถาปัตยกรรมฮาร์ดแวร์ของคอมพิวเตอร์ แม้ว่าจะเป็นเรื่องปกติสำหรับเกมที่พัฒนาโดยใช้ DirectX 11 เพื่อใช้ประโยชน์จากคอร์ CPU เพียงสองถึงสี่คอร์ โดยมีหนึ่งคอร์ทำหน้าที่เป็นจุดสื่อสารระหว่าง CPU และ GPU แต่ DirectX 12 นำเสนอความสามารถมัลติเธรดที่ได้รับการปรับปรุง ซึ่งช่วยให้สามารถจัดสรรทรัพยากรที่มีประสิทธิภาพมากขึ้นระหว่างคอร์หลายคอร์ ส่งผลให้ประสิทธิภาพดีขึ้นและการเรนเดอร์ที่ราบรื่นยิ่งขึ้นในแอพพลิเคชั่นที่ใช้ประโยชน์จากอินเทอร์เฟซกราฟิกที่อัปเดตนี้

เพื่อเพิ่มประสิทธิภาพในแอพพลิเคชั่นเกม สิ่งสำคัญคือซอฟต์แวร์จะต้องจัดสรรทรัพยากรอย่างมีประสิทธิภาพ ซึ่งหมายถึงการใช้หน่วยประมวลผลที่มีอยู่ทั้งหมดอย่างเต็มศักยภาพ ในขณะเดียวกันก็รักษาการสื่อสารที่มีประสิทธิภาพระหว่างกัน ในเรื่องนี้ ระบบปฏิบัติการบางระบบได้ใช้กลไกที่ช่วยให้สามารถกระจายงานการคำนวณไปยังส่วนประกอบฮาร์ดแวร์ต่างๆ เช่น โปรเซสเซอร์และการ์ดกราฟิก ด้วยการควบคุมความสามารถของหลายคอร์ กลยุทธ์เหล่านี้จะเพิ่มประสิทธิภาพของระบบโดยรวม และอำนวยความสะดวกในการโต้ตอบที่ราบรื่นระหว่างหน่วยประมวลผลกลาง (CPU) และหน่วยประมวลผลกราฟิก (GPU)

แท้จริงแล้ว หนึ่งในคุณสมบัติเด่นของ DirectX 12 คือการผสานรวมฟังก์ชันการทำงานขั้นสูง เช่น การประมวลผลแบบอะซิงโครนัสและวัตถุสถานะไปป์ไลน์ (PSO) ซึ่งเพิ่มประสิทธิภาพของหน่วยประมวลผลกราฟิก (GPU) อย่างมีนัยสำคัญ โดยเปิดใช้งานการทำงานหลายอย่างพร้อมกัน ด้วยเหตุนี้ เทคโนโลยีนี้จึงช่วยให้ใช้ประโยชน์จากความสามารถของ GPU ได้อย่างเหมาะสมที่สุด ดังนั้นจึงตระหนักถึงศักยภาพด้านประสิทธิภาพสูงสุด

นอกเหนือจากการเรนเดอร์เนื้อหากราฟิกแล้ว หน่วยประมวลผลกราฟิก (GPU) ยังสามารถจัดการงานที่หลากหลาย รวมถึงการดำเนินการอัลกอริธึมการเรียนรู้ของเครื่อง อย่างไรก็ตาม ด้วย DirectX 11 GPU จะถูกจำกัดให้ทำงานเพียงอย่างใดอย่างหนึ่งในช่วงเวลาที่กำหนดและตามลำดับที่กำหนดไว้ล่วงหน้า ข้อจำกัดนี้ส่งผลให้มีการใช้งานทรัพยากร GPU ไม่เพียงพอ ซึ่งส่งผลเสียต่อประสิทธิภาพโดยรวม

ลองพิจารณาคำอุปมาของพนักงานเสิร์ฟในร้านอาหาร ระหว่างรอคำสั่ง พนักงานเสิร์ฟจะเริ่มต้นด้วยการสอบถามเกี่ยวกับเครื่องดื่มที่ลูกค้าต้องการ เมื่อได้รับเครื่องดื่มแล้ว พนักงานเสิร์ฟก็ดำเนินการสอบถามเกี่ยวกับอาหารจานหลัก กระบวนการทีละขั้นตอนนี้เกิดขึ้น แม้จะมีประสิทธิผล แต่ก็ยังขาดประสิทธิภาพที่เหมาะสมที่สุดเนื่องจากมีลักษณะเป็นลำดับ

ในขอบเขตของวิทยาการคอมพิวเตอร์ เป็นไปได้ที่สินทรัพย์หน่วยประมวลผลกราฟิก (GPU) ที่แตกต่างกันจะจัดการคำสั่งซื้อแต่ละรายการที่ส่งโดยลูกค้าร้านอาหาร ในขณะที่รออาหาร ทรัพยากร GPU เหล่านี้สำหรับกระบวนการสั่งซื้อจะยังคงว่างอยู่จนกว่าจะถึงเวลาที่ต้องดำเนินการตามคำขอของลูกค้าสำหรับอาหารจานหลัก ด้วยการใช้ประโยชน์จากความสามารถของสถาปัตยกรรมคอมพิวเตอร์แบบอะซิงโครนัสของ DirectX 12 พนักงานเสิร์ฟสามารถรวบรวมคำสั่งซื้อทั้งหมดพร้อมกันได้อย่างมีประสิทธิภาพ เหมือนกับบริการที่สะดวกจากร้านฟาสต์ฟู้ดยอดนิยม วิธีการนี้จะเพิ่มประสิทธิภาพการใช้งานเนื้อหา GPU และเพิ่มประสิทธิภาพโดยรวมที่ได้รับขณะเล่นเกม

DirectX 12 เปิดตัว Pipeline State Objects (PSO) ซึ่งช่วยให้นักพัฒนาสามารถควบคุมความสามารถในการประมวลผลกราฟิกได้ดียิ่งขึ้น ในเวอร์ชันก่อนหน้า เช่น DirectX 11 ฮาร์ดแวร์มีหน้าที่รับผิดชอบแต่เพียงผู้เดียวในการตีความและเรนเดอร์ข้อมูลกราฟิกผ่านไปป์ไลน์กราฟิก ซึ่งประกอบด้วยชุดของอินพุตและเอาต์พุตที่ส่งผลให้เกิดการเรนเดอร์เฟรม แม้ว่าไปป์ไลน์กราฟิกจะเป็นรากฐานสำหรับการเรนเดอร์ที่มีประสิทธิภาพ แต่ก็ไม่ได้ปราศจากข้อบกพร่อง

การกำหนดค่าปัจจุบันประกอบด้วยอาร์เรย์ของสถานะที่หลากหลาย เช่น สถานะแรสเตอร์ สถานะผสมผสาน และสถานะสเตนซิลเชิงลึก นอกเหนือจากสถานะอื่นๆ อีกหลายสถานะ ภายใน DirectX 11 มีการพึ่งพาอาศัยกันระหว่างสถานะต่างๆ เหล่านี้ ส่งผลให้สถานะเหล่านี้ขึ้นอยู่กับความสำเร็จของกันและกันตามลำดับ ด้วยเหตุนี้ GPU จึงยังคงมีการใช้งานน้อยเกินไปในขณะที่ CPU ประสบกับโอเวอร์เฮดที่เพิ่มขึ้น ซึ่งส่งผลเสียต่อประสิทธิภาพโดยรวม

DirectX 12 แก้ไขปัญหานี้ด้วยการเปิดตัว Primary Surface Objects (PSO) ซึ่งแสดงถึงสถานะโดยรวมของไปป์ไลน์กราฟิก PSO ได้รับการออกแบบให้เป็นคอนเทนเนอร์ โดยครอบคลุมองค์ประกอบที่จำเป็นทั้งหมดที่จำเป็นสำหรับการแสดงภาพ ด้วยการใช้ PSO GPU จึงสามารถดำเนินการประมวลผลล่วงหน้าของสถานะที่พึ่งพาซึ่งกันและกัน แทนที่จะคำนวณซ้ำๆ ตามไปป์ไลน์กราฟิกที่ใช้งานอยู่

แท้จริงแล้ว DirectX 12 มีความเครียดของ CPU ที่ลดลงอย่างเห็นได้ชัดเมื่อเปรียบเทียบกับรุ่นก่อนอย่าง DirectX 11 ซึ่งส่งผลให้ประสิทธิภาพของระบบโดยรวมดีขึ้น ในความเป็นจริง Microsoft ได้รายงานว่า API ใหม่สามารถลดการใช้งาน CPU ได้ถึงครึ่งหนึ่งและเพิ่มประสิทธิภาพการทำงานของ GPU ได้ประมาณหนึ่งในห้า อย่างไรก็ตาม สิ่งสำคัญคือต้องทราบว่าการปรับให้เหมาะสมเหล่านี้อาจแตกต่างกันไปขึ้นอยู่กับปัจจัยต่างๆ เช่น การกำหนดค่าฮาร์ดแวร์และลักษณะเฉพาะของแอปพลิเคชัน

เหตุใดการเปลี่ยนจาก DirectX 11 เป็น DirectX 12 จึงไม่ตรงไปตรงมา

การเปิดตัว DirectX 11 สำหรับ Windows Vista เกิดขึ้นเมื่อวันที่ 27 ตุลาคม ต่อมา การเปิดตัว DirectX 12 เกิดขึ้นในปี 2558 ส่งผลให้ DirectX 11 และ DirectX 12 ใช้เวลาหกปี ในช่วงหลายปีที่ผ่านมา มีการสร้างวิดีโอเกมจำนวนมากโดยใช้ DirectX 11 เป็นรากฐาน อย่างไรก็ตาม การเปลี่ยนจาก DirectX 11 เป็น DirectX 12 ถือเป็นความท้าทายอย่างมาก

DirectX 11 เป็นอินเทอร์เฟซการเขียนโปรแกรมขั้นสูงที่ทำให้การพัฒนาง่ายขึ้นโดยมอบฟังก์ชันการทำงานระดับสูงขึ้น ส่งผลให้วิดีโอเกมมีประสิทธิภาพและดึงดูดสายตามากขึ้น ในทางตรงกันข้าม DirectX 12 ทำงานในระดับนามธรรมที่ต่ำกว่า โดยต้องใช้ความเชี่ยวชาญเฉพาะด้านจึงจะใช้งานได้อย่างมีประสิทธิภาพ อย่างไรก็ตาม วิธีการนี้ช่วยให้สามารถควบคุมการปรับปรุงประสิทธิภาพให้เหมาะสมได้มากขึ้นบนพื้นฐานโดยละเอียด

แท้จริงแล้ว ประสิทธิภาพของเกมที่สร้างขึ้นโดยใช้ DirectX 12 อาจขึ้นอยู่กับความสามารถของผู้พัฒนาที่เกี่ยวข้องกับ API แม้ว่า DirectX 12 จะได้รับการปรับปรุงบางอย่าง แต่ผลลัพธ์สุดท้ายจะขึ้นอยู่กับความสามารถของโปรแกรมเมอร์ในการใช้งานอย่างมีประสิทธิภาพ ด้วยเหตุนี้ โปรแกรมเมอร์จำนวนมากจึงเลือกใช้ API ระดับสูงกว่า เช่น DirectX 11 เนื่องจากใช้งานง่ายและเข้าถึงได้

DX 11 กับ DX 12: คุณควรเลือกอันไหน?

ความเป็นไปได้ในการใช้ DirectX 12 ใน Guild Wars 2 ขึ้นอยู่กับปัจจัยหลายประการ รวมถึงเกมที่กำลังเล่นอยู่ ในกรณีนี้ Guild Wars 2 ได้รับการออกแบบให้ทำงานเฉพาะกับ DirectX 11 แม้ว่าจะมีความเป็นไปได้ที่จะเข้ากันได้กับ DirectX 12 โดยขึ้นอยู่กับระบบปฏิบัติการและความสามารถของฮาร์ดแวร์ของผู้ใช้ อย่างไรก็ตาม ตัวเลือกในการจำกัดเกมไว้ที่ DirectX 11 นั้นขึ้นอยู่กับผู้พัฒนาที่ ArenaNet เท่านั้น

/th/images/untitled-design-3.jpg เครดิตรูปภาพ: Martin Kerstein/Guild Wars 2

จริงๆ เป็นที่น่าสังเกตว่า ArenaNet ต้องใช้เวลาพอสมควรถึงเก้าปีในการเปลี่ยนจาก DirectX 9 เป็น DirectX อย่างไรก็ตาม วิดีโอเกมบางเกมมีความสามารถในการทำงานพร้อมกันกับทั้ง DirectX 11 และ DirectX 12 เช่น Fortnite ซึ่งผู้ใช้อาจ โปรดดูคำแนะนำที่ครอบคลุมของเราเกี่ยวกับ Fortnite สำหรับข้อมูลเชิงลึกเพิ่มเติม นอกจากนี้ เกมยอดนิยมอย่าง Battlefield 5, Shadow of the Tomb Raider และอื่นๆ ยังมีความเข้ากันได้นี้ ทำให้ผู้เล่นสามารถสลับระหว่าง DirectX 11 และ DirectX 12 ได้อย่างง่ายดายภายในการตั้งค่าเกม

มีแนวโน้มว่าเกมบางเกมเข้ากันได้กับทั้ง DirectX 11 และ 12 ทำให้คุณมีคำถามเกี่ยวกับผลกระทบต่อประสิทธิภาพในเกม โดยเฉพาะอย่างยิ่ง คุณอาจสงสัยว่าการเลือกใช้ DX 11 หรือ DX 12 จะส่งผลให้ประสิทธิภาพภายในเกมเหล่านี้ดีขึ้นหรือไม่ เพื่อตอบคำถามนี้ เราได้เตรียมวิดีโอที่เปรียบเทียบผลกระทบของ DirectX แต่ละเวอร์ชันในเกมต่างๆ โดยนำเสนอข้อมูล เช่น FPS เฉลี่ย การใช้งาน CPU และการใช้งาน GPU โดยใช้ AMD Ryzen 3600, Nvidia GeForce RTX 3060 Ti และ แรม 16GB DDR4.

การค้นพบนี้กระตุ้นให้เกิดความรู้สึกประหลาดใจ เนื่องจาก DX 11 และ DX 12 มีความเหลื่อมล้ำทางการมองเห็นน้อยที่สุด แม้ว่าทั้งสองจะแยกจากกันหลายปีก็ตาม ยิ่งไปกว่านั้น เป็นที่น่าสังเกตว่าการใช้งาน GPU และ CPU มีแนวโน้มที่จะลดลงสำหรับการทำซ้ำ DX 12 ของแต่ละชื่อ เมื่อเปรียบเทียบกับ DX 11 ที่เกี่ยวข้อง

แท้จริงแล้ว การเลือกหน่วยประมวลผลกราฟิก (GPU) ที่เข้ากันได้กับ DirectX 11 หรือ DirectX 12 ถือเป็นสิ่งสำคัญในการตัดสินใจ แม้ว่า GPU ร่วมสมัยหลายตัวจะสามารถรองรับ DirectX 12 ได้ แต่ GPU รุ่นเก่าบางรุ่น เช่น Radeon HD ที่เปิดตัวในปี 2008 อาจไม่มีความสามารถที่จำเป็นในการจัดการกับเกมรุ่นใหม่ที่ต้องอาศัย API เหล่านี้อย่างมาก ด้วยเหตุนี้ การใช้ GPU ที่ล้าสมัยอาจจำกัดความสามารถในการเพลิดเพลินกับประสบการณ์การเล่นเกมล่าสุด เนื่องจากความเข้ากันได้ที่จำกัดกับ DirectX 11 และ DirectX 12

DirectX 12 เป็นตัวเลือกที่เหมาะสมสำหรับคุณหรือไม่?

การตัดสินใจเปลี่ยนจาก DirectX 11 เป็น DirectX 12 ไม่ใช่เรื่องที่ไม่ซับซ้อน เนื่องจากขึ้นอยู่กับตัวแปรหลายอย่าง รวมถึงการกำหนดค่าฮาร์ดแวร์ ความเข้ากันได้ของซอฟต์แวร์ ระบบปฏิบัติการ และว่าเกมดังกล่าวรองรับทั้งสองเวอร์ชันหรือไม่ ดังนั้น จะต้องพิจารณาอย่างรอบคอบก่อนที่จะได้ข้อสรุปใดๆ ซึ่งคาดว่าจะยังคงมีผลบังคับใช้สำหรับการทำซ้ำ DirectX ครั้งต่อไป