ดังนั้น Vulkan API ใหม่นี้จะเป็นอย่างไรและทำไมเราจึงควรใส่ใจ
นี่คือ Vulkan API ที่มีคำไม่เกินร้อยคำ: เป็น API ใกล้เคียงกับโลหะที่มีค่าใช้จ่ายต่ำสำหรับกราฟิก 3 มิติและแอปพลิเคชันคอมพิวเตอร์ Vulkan เป็นพื้นฐานของ OpenGL เดิมเรียกว่า“ การริเริ่ม OpenGL รุ่นต่อไป” และประกอบด้วยบิตและชิ้นส่วนจาก Mantle API ของ AMD Vulkan ควรให้ข้อได้เปรียบมากมายเหนือ GPU APIs อื่น ๆ ทำให้รองรับการข้ามแพลตฟอร์มที่เหนือกว่ารองรับโปรเซสเซอร์แบบมัลติเธรดได้ดีขึ้นโหลด CPU ที่ลดลงและการไม่เชื่อเรื่องพระเจ้าของระบบปฏิบัติการ นอกจากนี้ยังควรทำให้การพัฒนาไดรเวอร์ง่ายขึ้นและอนุญาตให้มีการรวบรวมไดรเวอร์ไว้ล่วงหน้ารวมถึงการใช้เฉดสีที่เขียนในภาษาต่างๆ
นั่นคือ 93 คำดังนั้นหากคุณไม่สนใจคุณสามารถข้าม 3,500 คำถัดไปได้ ในทางกลับกันหากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ API กราฟิกที่กำลังจะมาถึงซึ่งจะอยู่กับเราในอีกหลายปีข้างหน้าฉันจะเริ่มต้นใช้งานพื้นฐาน
ภูเขาไฟอะไร ประกาศครั้งแรก โดย Khronos Group ในเดือนมีนาคม 2015 โดยมีวันเปิดตัวเบื้องต้นที่กำหนดไว้สำหรับปลายปี 2015 ในกรณีที่คุณไม่คุ้นเคยกับ Khronos เป็นกลุ่มอุตสาหกรรมที่ไม่แสวงหาผลกำไรซึ่งก่อตั้งขึ้นเมื่อ 15 ปีที่แล้วโดยชื่อที่ใหญ่ที่สุดในอุตสาหกรรมกราฟิกรวมถึง ATI (ปัจจุบันเป็นส่วนหนึ่งของ AMD), Nvidia, Intel, Silicon Graphics, Discrete และ Sun Microsystems แม้ว่าคุณจะไม่เคยได้ยิน Khronos มาก่อน แต่คุณอาจเคยได้ยินเกี่ยวกับมาตรฐานบางอย่างเช่น OpenGL, OpenGL ES, WebGL, OpenCL, SPIR, SYCL, WebCL, OpenVX, EGL, OpenMAX, OpenVG, OpenSL ES, StreamInput, COLLADA และ glTF
ความเป็นจริงเสมือน ความจริงเสริม ความจริงเสริม ความเป็นจริงผสม
ถึงตอนนี้คุณอาจจะคิดว่า“ อ๊ะนั่นมันคนพวกนั้น” ดังนั้นฉันจึงสามารถข้ามช่วงแนะนำที่เหลือและมุ่งเน้นไปที่ API ได้
ไม่เหมือนกับรุ่นก่อนหน้าหรือรุ่นก่อน ๆ Vulkan ได้รับการออกแบบมาตั้งแต่ต้นจนจบเพื่อให้ทำงานบนแพลตฟอร์มที่หลากหลายตั้งแต่โทรศัพท์มือถือและแท็บเล็ตไปจนถึงเกมคอนโซลและเดสก์ท็อประดับไฮเอนด์ การออกแบบพื้นฐานของ API เป็นแบบเลเยอร์หรือเราควรจะเรียกว่าโมดูลาร์ดังนั้นจึงช่วยให้สามารถสร้างสถาปัตยกรรมทั่วไป แต่ขยายได้สำหรับการตรวจสอบโค้ดการดีบักและการทำโปรไฟล์โดยไม่ส่งผลกระทบต่อประสิทธิภาพ Krhonos อ้างว่าวิธีการแบบเลเยอร์จะให้ความยืดหยุ่นมากขึ้นกระตุ้นให้เกิดนวัตกรรมที่แข็งแกร่งในเครื่องมือ GPU ข้ามผู้จำหน่ายและมอบการควบคุม GPU โดยตรงที่ต้องการโดยเอ็นจิ้นเกมที่ซับซ้อน
ตอนนี้ฉันเข้าใจว่านักเทคโนโลยีจำนวนมากมีการจองเกี่ยวกับเงื่อนไขทางการตลาดเช่น 'ยืดหยุ่น' 'ขยายได้' และ 'โมดูลาร์' แต่คราวนี้เรากำลังจัดการกับของจริง ตามความเป็นจริงนั่นคือแนวคิดพื้นฐานเบื้องหลัง Vulkan: ถูกมองว่าเป็น API สำหรับคนทั่วไปตั้งแต่การเล่นเกมสำหรับเด็กบนสมาร์ทโฟนไปจนถึงผู้ปกครองที่ออกแบบอาคารและเกมบนเวิร์กสเตชัน
ตามทฤษฎีแล้ว Vulkan สามารถใช้ในฮาร์ดแวร์คอมพิวเตอร์แบบคู่ขนานเพื่อควบคุมแกน GPU หลายหมื่นล้านแกนในอุปกรณ์สวมใส่ขนาดเล็กและโดรนของเล่นในเครื่องพิมพ์ 3 มิติรถยนต์ชุด VR และสิ่งอื่น ๆ ที่มี GPU ที่เข้ากันได้ภายใน
สำหรับรายละเอียดเพิ่มเติมฉันขอแนะนำให้คุณดูที่ไฟล์ ภาพรวม Vulkan อย่างเป็นทางการในรูปแบบ PDF .
หากวิธีการที่ใกล้เคียงกับโลหะฟังดูคุ้นเคยอย่างน่าประหลาดคุณอาจติดตามการประกาศ GPU ของ AMD ในช่วงสองปีที่ผ่านมาหรือมากกว่านั้น AMD สร้างความประหลาดใจให้กับผู้สังเกตการณ์ในอุตสาหกรรมเมื่อประกาศ Mantle API ในปี 2013 และทำให้พวกเขาประหลาดใจอีกครั้งเมื่อตัดสินใจดึงปลั๊ก API โดยประกาศเมื่อเดือนมีนาคม 2558 ว่าจะไม่ปล่อย Mantle 1.0 เป็น SDK สาธารณะ โดยสรุป Mantle สัญญาว่าจะนำเสนอประสิทธิภาพและการปรับปรุงประสิทธิภาพที่สำคัญในบางสถานการณ์โดยเฉพาะที่ด้านหน้าของ CPU เนื่องจากจะลดค่าใช้จ่ายในการประมวลผล ฟังดูเหมือนเป็นความคิดที่ดีเนื่องจากนักเล่นเกมสามารถรวบรวมพีซีแบบกำหนดเองที่มีโปรเซสเซอร์ที่ค่อนข้างช้าและลงทุนเงินมากขึ้นในกราฟิกการ์ดชั้นนำ มันฟังดูสะดวกมากสำหรับ AMD เช่นกันเนื่องจาก บริษัท ไม่มี CPU ระดับไฮเอนด์ที่สามารถแข่งขันได้ในช่วงหลายปีที่ผ่านมาแม้ว่าจะยังมีผลิตภัณฑ์ GPU ที่ดีก็ตาม
เมื่อแฟนบอย AMD ร้องไห้มารวมตัวกันเพื่อไว้อาลัยต่อการจากไปของผู้ช่วยชีวิต Mantle ก็ฟื้นคืนชีพอย่างน่าอัศจรรย์ ข่าวดีมาในรูปแบบของ โพสต์บล็อก ซึ่งเขียนโดย AMD รองประธานฝ่าย Visual and Perceptual Computing, Raja Koduri บังเอิญเพื่อให้สอดคล้องกับหัวข้อทางศาสนามีอยู่ครั้งหนึ่ง Koduri ได้จัดงานเทศนาบนภูเขาระหว่างงานเปิดตัว AMD ที่ฮาวายในปี 2013 แต่ฉันพูดนอกเรื่อง
ทีมของ Koduri ทำงานได้ดี แม้ว่า Mantle จะไม่ได้กลายเป็นมาตรฐานใหม่ของอุตสาหกรรม แต่ก็กลายเป็นรากฐานสำหรับ Vulkan ความแตกต่างที่ใหญ่ที่สุดคือ Vulkan จะไม่ถูก จำกัด ไว้ที่ฮาร์ดแวร์ AMD GCN มันจะทำงานกับ GPU จำนวนมากขึ้นจากผู้ขายที่แตกต่างกัน คุณอาจจะเห็นว่าฉันจะไปที่ไหนกับสิ่งนี้ ดีกว่าเล็กน้อยที่จะมี API กราฟิกโอเวอร์เฮดต่ำเพียงตัวเดียวที่ทำงานบนระบบปฏิบัติการและแพลตฟอร์มฮาร์ดแวร์ที่แตกต่างกันแทนที่จะมี API ที่เป็นกรรมสิทธิ์สำหรับสถาปัตยกรรม GPU ระบบปฏิบัติการและอื่น ๆ
Vulkan API ใช้ประโยชน์จาก Mantle pie และแบ่งปันกับทุกคนโดยไม่คำนึงถึงระบบปฏิบัติการฮาร์ดแวร์เชื้อชาติหรือศาสนา
โอ้และยังมีอีกอย่างหนึ่ง: ในที่สุด Mantle ก็บังคับให้ Microsoft และ Khronos ทำบางอย่างเกี่ยวกับ DirectX และ OpenGL ที่ขยายตัวและไม่มีประสิทธิภาพ มันเป็นการเตะที่นุ่มนวลและเป็นมิตรที่ด้านหลังหรือ“ badonkadonk” อย่างที่เพื่อน ApeeScapeer คนหนึ่งชอบใส่มัน
เห็นได้ชัดว่าฉันต้องสรุปความแตกต่างพื้นฐานระหว่าง Vulkan และ OpenGL Khronos มาพร้อมกับภาพประกอบง่ายๆซึ่งแสดงให้เห็นว่า API ใหม่สามารถกำจัดการขยายตัวของไดรเวอร์ได้มากเพียงใด
วัลแคนช่วยให้แอปพลิเคชั่นเข้าใกล้โลหะมากขึ้นจึงไม่จำเป็นต้องใช้หน่วยความจำและการจัดการข้อผิดพลาดจำนวนมากรวมถึงแหล่งภาษาแรเงาจำนวนมาก ไดรเวอร์จะเบาลงและมีความหมาย Vulkan จะใช้ภาษากลาง SPIR-V เท่านั้นและเนื่องจากมี API แบบรวมสำหรับตลาดมือถือเดสก์ท็อปและคอนโซลจึงควรได้รับการดูแลจากนักพัฒนาที่อ่อนโยนและรักใคร่มากขึ้น
แต่เดี๋ยวก่อนนี่ไม่ใช่แค่ลดภาระงานให้มากขึ้น นักพัฒนาเกม เหรอ? แน่นอนว่าพวกเขาจะสามารถใช้ฮาร์ดแวร์ได้อย่างมีประสิทธิภาพมากขึ้น แต่เวลาทำงานของพวกเขาเองล่ะ? นี่คือจุดที่แนวทางของระบบนิเวศแบบชั้นเข้าสู่การต่อสู้
นักพัฒนาจะสามารถเลือกระดับที่แตกต่างกันสามระดับหรือระดับของระบบนิเวศ Vulkan
ตัวเลือกแรกเห็นได้ชัดว่าไม่เหมาะสำหรับทุกคน แต่ฉันสงสัยว่ามันน่าจะเป็นซอฟต์แวร์เปรียบเทียบที่ดี Khronos คาดหวังว่าตัวเลือกที่สองจะเป็น“ พื้นที่ที่อุดมไปด้วยนวัตกรรม” เนื่องจากยูทิลิตี้และเลเยอร์จำนวนมากจะอยู่ในโอเพนซอร์สและจะช่วยให้การเปลี่ยนจาก OpenGL ง่ายขึ้น หากผู้เผยแพร่มีชื่อ OpenGL ที่ต้องปรับแต่งและอัปเดตนี่คือสิ่งที่พวกเขาจะใช้
ตัวเลือกสุดท้ายอาจเป็นทางเลือกที่น่าดึงดูดที่สุดเนื่องจากการยกของหนักได้กระทำโดยคนในอุตสาหกรรมเช่น Unity, Oxide, Blizzard, Epic, EA, Valve และอื่น ๆ
นี่คือตาราง OpenGL กับ Vulkan ฉบับย่อ:
OpenGL | ภูเขาไฟ |
---|---|
สร้างขึ้นสำหรับเวิร์กสเตชันกราฟิกที่มีตัวแสดงผลโดยตรงหน่วยความจำแยก | การจับคู่ที่ดีกว่าสำหรับแพลตฟอร์มสมัยใหม่รวมถึงแพลตฟอร์มมือถือที่มีหน่วยความจำรวมและการสนับสนุนการแสดงผลแบบเรียง |
ไดรเวอร์จัดการการตรวจสอบสถานะการติดตามการพึ่งพาการตรวจสอบข้อผิดพลาด ซึ่งอาจ จำกัด และสุ่มประสิทธิภาพ | แอปพลิเคชันมีการควบคุม GPU โดยตรงและคาดเดาได้ผ่านทาง API ที่ชัดเจน |
โมเดลเธรดที่ล้าสมัยไม่อนุญาตให้สร้างคำสั่งกราฟิกควบคู่ไปกับการเรียกใช้คำสั่ง | API ออกแบบมาสำหรับแพลตฟอร์มมัลติคอร์แบบมัลติเธรด สามารถสร้างบัฟเฟอร์คำสั่งหลายคำสั่งควบคู่กันได้ |
ตัวเลือก API อาจมีความซับซ้อนไวยากรณ์ได้รับการพัฒนามากว่ายี่สิบปี | การลบข้อกำหนดเดิมช่วยลดความยุ่งยากในการออกแบบ API ช่วยลดความซับซ้อนของคำแนะนำการใช้งานลดขนาดข้อมูลจำเพาะ |
คอมไพเลอร์ภาษา Shader เป็นส่วนหนึ่งของไดรเวอร์และรองรับเฉพาะ GLSL ต้องจัดส่งแหล่งที่มาของ shader | SPIR-V เป็นเป้าหมายของคอมไพเลอร์ใหม่ซึ่งช่วยให้ภาษาฟรอนท์เอนด์มีความยืดหยุ่นและเชื่อถือได้ |
นักพัฒนาต้องคำนึงถึงความแปรปรวนของการใช้งานระหว่างผู้ขาย | เนื่องจาก API ที่ง่ายกว่าและฟรอนต์เอนด์ภาษาทั่วไปการทดสอบที่เข้มงวดมากขึ้นจะเพิ่มความเข้ากันได้กับผู้จำหน่ายข้าม |
พูดตามตรงฉันไม่คิดว่าจะยุติธรรมเลยที่จะเปรียบเทียบทั้งสองอย่างนี้ Vulkan เป็นอนุพันธ์ของ Mantle ในขณะที่ OpenGL เป็นมาสโตดอนที่มีน้ำหนักกระเป๋า 20 ปี วัลแคนควรทิ้งสิ่งของที่เป็นมรดกตกทอดมากมาย นั่นคือประเด็นทั้งหมด Vulkan ควรจะปรับปรุงการทดสอบและการใช้งานทำให้ไดรเวอร์มีขนาดเล็กลงและปรับปรุงความสามารถในการพกพาโปรแกรม shader ผ่านภาษากลาง SPIR-V
สิ่งนี้นำเราไปสู่คำถามถัดไป Vulkan มีความหมายอย่างไรสำหรับนักพัฒนา?
แล้ว SPIR-V เข้ามามีบทบาทอย่างไรและจะเกิดอะไรขึ้นกับ GLSL รุ่นเก่าที่ดี?
GSLS จะยังคงมีชีวิตอยู่ในตอนนี้และจะเป็นภาษาแรเงาแรกที่ Vulkan รองรับ นักแปล GLSL เป็น SPIR-V จะทำการยกของหนักและคุณจะได้รับ SPIR-V พร้อมที่จะเลี้ยงรันไทม์ Vulkan ที่หิวโหย นักพัฒนาเกมจะสามารถใช้ SPIR-V และ Vulkan back-end ได้โดยอาจอาศัยฟรอนต์เอนด์ของคอมไพเลอร์แบบโอเพนซอร์ส นอกจาก GLSL แล้ว Vulkan ยังรองรับเคอร์เนล OpenCL C ได้ในขณะที่การเพิ่มการรองรับ C ++ กำลังดำเนินไป ภาษากรอบงานและเครื่องมือเฉพาะโดเมนในอนาคตเป็นอีกทางเลือกหนึ่ง Khronos ยังกล่าวถึงความเป็นไปได้ในการพัฒนาภาษาทดลองใหม่ ๆ
ไม่ว่านักพัฒนาจะเลือกทำอะไรถนนทุกสายจะนำไปสู่ Vulkan ผ่าน SPIR-V และจากนั้นไปยังอุปกรณ์ต่างๆมากมาย
SPIR-V ควรปรับปรุงการพกพาด้วยสามวิธี:
เนื่องจากไม่จำเป็นที่ทุกแพลตฟอร์มฮาร์ดแวร์จะต้องมีตัวแปลภาษาระดับสูงนักพัฒนาจึงจัดการกับพวกเขาน้อยลง
ISV แต่ละตัวสามารถสร้าง SPIR-V โดยใช้ชุดเครื่องมือเดียวดังนั้นจึงช่วยขจัดปัญหาด้านความสามารถในการพกพาของภาษาระดับสูง
SPIR-V นั้นง่ายกว่าภาษาระดับสูงทั่วไปทำให้การใช้งานและการประมวลผลง่ายขึ้น
ประสิทธิภาพจะได้รับการปรับปรุงในหลาย ๆ วิธีขึ้นอยู่กับวิธีการใช้งาน Vulkan:
Khronos ไม่ได้ระบุตัวเลขสมรรถนะใด ๆ และตั้งข้อสังเกตว่า“ ระยะทางจะแตกต่างกันไปอย่างแน่นอน” ทั้งหมดขึ้นอยู่กับวิธีการใช้ Vulkan หากคุณต้องการตรวจสอบรายละเอียดที่ชัดเจนโปรดตรวจสอบไฟล์ กระดาษสีขาว SPIR-V .
ฉันได้ระบุคุณสมบัติหลายอย่างที่ควรทำให้ Vulkan และ SPIR-V เป็นที่นิยมในชุมชนผู้พัฒนาและ Khronos ก็กระตือรือร้นที่จะเข้าใจประเด็นนี้เช่นกัน ความคาดหวังในการใช้เครื่องมือและทักษะเดียวกันในการพัฒนาสำหรับหลายแพลตฟอร์มดูน่าสนใจโดยเฉพาะอย่างยิ่งตอนนี้ช่องว่างด้านประสิทธิภาพระหว่างแพลตฟอร์มต่างๆกำลังปิดลง
แน่นอนว่าการพัฒนาเกม AAA ราคาประหยัดสำหรับพีซีจะยังคงเป็นกระบวนการที่ซับซ้อนและใช้เวลานานมากโดยเกี่ยวข้องกับเงินสดและทรัพยากรบุคคลจำนวนมาก แต่แพลตฟอร์มมือถือและ GPU แบบบูรณาการที่ใช้ในโปรเซสเซอร์ Intel และ AMD รุ่นล่าสุดส่งมอบจำนวนมากแล้ว ประสิทธิภาพของ GPU สำหรับเกมเมอร์ทั่วไป นอกจากนี้นักพัฒนาอิสระรายย่อยหรือนักพัฒนาอิสระมีแนวโน้มที่จะทำงานกับเกมแคชชวลข้ามแพลตฟอร์มมากกว่าเกมระดับ AAA ที่ผู้จัดพิมพ์รายใหญ่ตีพิมพ์
Khronos สรุปข้อดีดังต่อไปนี้ที่เกิดขึ้นได้จาก SPIR-V:
ฉันแน่ใจว่าคุณจะยอมรับว่ามันฟังดูดี แต่ยังมีหนทางอีกยาวไกล
อย่างที่บอกว่าวัลแคนยังอยู่ระหว่างดำเนินการและเราน่าจะมีสเป็คเต็มภายในสิ้นปีนี้ อย่างไรก็ตามจากสิ่งที่เราเห็นจนถึงตอนนี้ API ใหม่สามารถปลดล็อกได้ มากมาย ประสิทธิภาพแม้กระทั่งกับฮาร์ดแวร์รุ่นปัจจุบัน
ภาพประกอบที่ดีที่สุดของ Vulkan ที่ฉันเคยเห็นมาจาก Imagination Technologies ซึ่งเป็นหนึ่งในชุด GPU บนมือถือชั้นนำที่มีอยู่ในนั้น Imagination Technologies GPU IP ถูกใช้ในอุปกรณ์ iOS ทั้งหมดพร้อมกับการออกแบบ System-on-Chip ที่ใช้ ARM อื่น ๆ อีกมากมายและแม้แต่ในชิป Intel x86 แรงดันต่ำบางรุ่น
เมื่อสัปดาห์ที่แล้ว Imagination เผยแพร่ a โพสต์บล็อก รายละเอียดการเพิ่มประสิทธิภาพที่เกิดขึ้นได้จาก Vulkan การเลือกใช้ฮาร์ดแวร์ค่อนข้างผิดปกติ: Google Nexus Player ซึ่งใช้โปรเซสเซอร์ Intel Quad-Core ที่ไม่ค่อยได้ใช้กับ GPU PowerVR G6430 อุปกรณ์ได้รับการทดสอบด้วยไดรเวอร์ Vulkan API ล่าสุดสำหรับ PowerVR GPU ในขณะที่การเรียกใช้การอ้างอิงดำเนินการบน OpenGL ES 3.0 ช่องว่างด้านประสิทธิภาพไม่ได้ทำให้สะดุด
ฉากนี้มีวัตถุทั้งหมด 400,000 ชิ้นโดยมีระดับรายละเอียดที่แตกต่างกันตั้งแต่จุดยอด 13,000 ถึง 300 จุด ภาพกว้างแสดงให้เห็นสามเหลี่ยมประมาณหนึ่งล้านรูปอัลฟ่าบนต้นไม้และพื้นผิวที่แตกต่างกันประมาณ 10 แบบสำหรับโนมส์และพืช ออบเจ็กต์แต่ละประเภทใช้ shader ที่แตกต่างกันและโนมส์ไม่ได้รับการอินสแตนซ์การเรียกใช้การดึงแต่ละครั้งอาจเป็นอ็อบเจ็กต์ที่แตกต่างกันโดยสิ้นเชิงด้วยวัสดุที่แตกต่างกัน แต่ผลลัพธ์สุดท้ายจะคล้าย
ถึงกระนั้นก็มีข้อแม้สำคัญ: นี่ไม่ใช่การเพิ่มประสิทธิภาพแบบที่คุณคาดไม่ถึงในชีวิตจริง ทีม Imagination Technologies ใช้สถานการณ์ที่เกินจริงเพื่อเน้นถึงความเหนือกว่าของ Vulkan เพื่อผลักดันให้ถึงขีด จำกัด และในสถานการณ์เฉพาะนี้ขีด จำกัด จะเป็นประโยชน์ต่อ Vulkan เทียบกับ OpenGL ES นอกจากนี้โปรดทราบว่า การทดสอบนี้ใช้กับ GPU แต่ก็ยังคงเป็นตัวอย่างที่ดีของการใช้งาน CPU ที่เหนือกว่าของ Vulkan
โปรดจำไว้ว่าตาราง OpenGL เทียบกับ Vulkan ที่เรามีก่อนหน้านี้หรือเพื่อให้เจาะจงมากขึ้นนั้น การแสดงผลกระเบื้อง นิดหน่อย? อาจจะไม่เป็นเช่นนั้นโดยสรุป: Imagination ใช้ Vulkan เพื่อดึงการโทรเป็นกลุ่มลงในไทล์และแสดงผลไทล์ในแต่ละครั้ง ขึ้นอยู่กับว่าไทล์อยู่ที่ใดในขณะที่แสดงเฟรมก็สามารถเข้ามาหรือออกจากมุมมองเปลี่ยนระดับของรายละเอียดและอื่น ๆ ได้ ใน OpenGL ES การเรียกใช้แบบไดนามิกทั้งหมดจะถูกส่งไปพร้อมกับแต่ละเฟรมตามสิ่งที่อยู่ในมุมมอง วาดการโทรที่ดำเนินการไปแล้วไม่สามารถแคชได้
ด้วยเหตุนี้ OpenGL ES จึงต้องการการเรียกหลายครั้งในโหมดเคอร์เนลเพื่อเปลี่ยนสถานะของไดรเวอร์และตรวจสอบความถูกต้อง Vulkan ไม่ได้อาศัยคำสั่งที่สร้างไว้ล่วงหน้า (บัฟเฟอร์คำสั่ง) เพื่อลดค่าใช้จ่ายของ CPU และขจัดความจำเป็นในการตรวจสอบความถูกต้องหรือคอมไพล์ระหว่างลูปการเรนเดอร์ ทีม Imagination อธิบายถึงความสามารถในการใช้บัฟเฟอร์คำสั่งซ้ำว่า 'มีประโยชน์ในบางสถานการณ์' และสามารถใช้ 'ในระดับที่ดี' ในเกมและแอปพลิเคชันต่างๆ
ตัวเปลี่ยนเกมที่สองคือ การสร้างบัฟเฟอร์แบบขนาน ซึ่งช่วยให้ Vulkan สามารถควบคุมพลังของคอร์ CPU ทั้งหมดได้ OpenGL ES ได้รับการออกแบบก่อนการถือกำเนิดของชิปมือถือแบบมัลติคอร์ แต่ในช่วงสามปีที่ผ่านมาอุตสาหกรรมได้เปลี่ยนจากสองถึงสี่ไปเป็นแปดและสิบคอร์ซีพียูโดยมี A-series SoC ของ Apple และ Nvidia Tegra ที่ใช้เดนเวอร์ ชิปเป็นข้อยกเว้นที่น่าสังเกตเท่านั้น ฉันได้พูดคุยเกี่ยวกับเทรนด์ SoC บนมือถือในบล็อกก่อนหน้านี้ซึ่งครอบคลุมถึงเรื่องที่กำลังจะเกิดขึ้น การเพิ่มประสิทธิภาพ คอมไพเลอร์ Android ดังนั้นคุณสามารถตรวจสอบข้อมูลเพิ่มเติมได้
ลองเปรียบเทียบกัน: ถ้า Vulkan เป็นเครื่องยนต์สันดาปภายในมันจะจัดเก็บและนำส่วนหนึ่งของพลังงานกลับมาใช้ใหม่ในลักษณะเดียวกับที่เทอร์โบชาร์จเจอร์และอินเตอร์คูลเลอร์จะ (บัฟเฟอร์คำสั่ง) และมันจะสามารถใช้สี่, หก แปดหรือสิบกระบอกสูบโดยไม่มีการสูญเสียประสิทธิภาพ (การสร้างบัฟเฟอร์แบบขนาน) การเปรียบเทียบ Vulkan กับ OpenGL ES นั้นฟังดูคล้ายกับการเปรียบเทียบเครื่องยนต์เทอร์โบรุ่นใหม่ที่ลดขนาดกับเครื่องยนต์สูบเดียวแบบเก่าบน Triumph Trophy ของคุณปู่ของคุณ
อย่างน้อยคุณปู่ก็เป็นร็อคเกอร์ที่เหมาะสมไม่ใช่ mod
ผลลัพธ์ที่ได้คือสภาพแวดล้อมที่มีประสิทธิภาพมากขึ้นอย่างมากโดยสามารถนำฮาร์ดแวร์ที่มีอยู่ทั้งหมดไปใช้งานได้ดีซึ่งแตกต่างจาก OpenGL ES ซึ่ง CPU ถูกผูกไว้ในสถานการณ์ส่วนใหญ่ ซึ่งหมายความว่า Vulkan สามารถให้ประสิทธิภาพในระดับใกล้เคียงกันในขณะที่รักษา CPU ไว้ที่นาฬิกาที่ต่ำกว่าซึ่งจะช่วยลดการใช้พลังงานและการควบคุมปริมาณ
ฉันไม่ได้เลือก; ฉันรู้สึกว่าการทำรายการข้อดีข้อเสียของ Vulkan API เป็นสิ่งสำคัญ โชคดีที่ไม่มีข้อเสียอื่น ๆ นอกเหนือจากข้อเสียเล็กน้อยและอาจเป็นข้อเสียหนึ่งหรือสองข้อ หากคุณคิดว่าวัลแคนเป็นสิ่งที่ดีที่สุดตั้งแต่ขนมปังหั่นบาง ๆ และคุณอยากที่จะลองทำในโปรเจ็กต์ถัดไปคุณอาจต้องพิจารณาประเด็นต่อไปนี้:
ถ้าก ผู้พัฒนา ต้องการใช้คุณสมบัติที่เป็นระเบียบบางอย่างที่ระบุไว้ในโพสต์นี้ซึ่งจะเกี่ยวข้องกับงานจำนวนมาก แต่ละคนจะต้องติดตั้งในโค้ด แต่ข่าวดีก็คือผู้นำในอุตสาหกรรมจะทำให้กระบวนการง่ายขึ้นด้วยการอัปเดตไดรเวอร์ใหม่
เวลาสู่ตลาดเป็นอีกหนึ่งปัญหาเช่นเดียวกับการนำ Vulkan ไปใช้ในแอปและเกมรุ่นเก่า วัลแคนยังคงเป็นตัวอย่างทางเทคนิค คาดว่าข้อกำหนดเบื้องต้นและการนำไปใช้งานภายในสิ้นปี 2015 ดังนั้นในความเป็นจริงเราอาจไม่ได้เห็นแอปพลิเคชันในโลกแห่งความเป็นจริงมากนักก่อนกลางปี 2016
การสนับสนุนทางอุตสาหกรรมไม่ควรเป็นปัญหา ท้ายที่สุดนี่เป็นมาตรฐาน Khronos แต่อาจใช้เวลาสักครู่ นั่นเป็นเหตุผลหนึ่งที่ฉันเน้นโพสต์นี้ไปที่กลุ่มมือถือ ซอฟต์แวร์และฮาร์ดแวร์มือถือพัฒนาไปอย่างรวดเร็วมากขึ้นและอาจต้องใช้เวลาอีก 2-3 ไตรมาสก่อนที่เราจะเห็น Vulkan สร้างผลกระทบบนแพลตฟอร์มเดสก์ท็อป นั่นเป็นเพียงวิธีการทำงานของอุตสาหกรรมเท่านั้นยังมีอีกหลายอย่างที่ต้องกังวลเกี่ยวกับช่องสำหรับเดสก์ท็อป: การรองรับแอปพลิเคชันระดับมืออาชีพกลุ่มเกมเมอร์ที่ขว้างด้วยการขว้างไปทั่วทุกเฟรมและอื่น ๆ อย่างไรก็ตามข้อเท็จจริงที่ว่า Vulkan มาจาก AMD’s Mantle นั้นเป็นสิ่งที่น่าส่งเสริม
ในขณะที่ Vulkan สามารถทำสิ่งมหัศจรรย์ในการตั้งค่าที่เชื่อมต่อกับ CPU โดยเฉพาะอย่างยิ่งกับ SoC มือถือแบบมัลติคอร์ประสิทธิภาพที่เพิ่มขึ้นเหล่านี้จะถูก จำกัด บนแพลตฟอร์มเดสก์ท็อป เดสก์ท็อปรองรับโปรเซสเซอร์แบบมัลติคอร์ด้วยประสิทธิภาพที่เหนือกว่าและแอพพลิเคชั่นที่ต้องการกราฟิกส่วนใหญ่จะใช้ GPU
จนกว่าปริศนาทั้งหมดจะเข้าที่นักพัฒนาบางคนอาจลังเลที่จะกระโดดลงไปยุ่งกับ Vulkan หลายคนไม่มีเวลาทดลองและเรียนรู้ทักษะใหม่ ๆ เมื่อจำเป็นจริงๆเท่านั้น การเผาผลาญเงินจำนวนมากและการเสียเวลาไปกับการปรับแต่งเกมมือถือที่มีอยู่เพื่อใช้ Vulkan ในช่วงแรกนี้จะไม่ใช่ตัวเลือกสำหรับนักพัฒนาและผู้เผยแพร่หลายราย
ความเข้ากันได้กับฮาร์ดแวร์รุ่นเก่าอาจเป็นอีกสาเหตุหนึ่งของความกังวล Vulkan จะต้องใช้ฮาร์ดแวร์ OpenGL ES 3.1 หรือ OpenGL 4.1 พร้อมกับไดรเวอร์ใหม่ ตัวอย่างเช่น GPU PowerVR series 6 ของ Imagination Technologies สามารถรองรับได้ แต่ series 5 ไม่สามารถทำได้ Adreno 400 series ของ Qualcomm รองรับ OpenGL ES 3.1 แต่ 300 series ไม่รองรับ ARM’s Mali T600- และ T700-series รองรับ OpenGL ES 3.1 แต่ขาดการสนับสนุนในการออกแบบ T400-series รุ่นเก่า โชคดีที่เมื่อถึงเวลาที่ Vulkan มีความเกี่ยวข้องอุปกรณ์ส่วนใหญ่ที่มี GPU ที่ไม่รองรับจะอยู่นอกภาพ ซึ่งรวมถึง iPhone 5 / 5C, iPad รุ่นที่สี่และอุปกรณ์ Samsung ที่ใช้ชิป Exynos 5000 ซีรีส์บางรุ่น อุปกรณ์ที่ใช้ Qualcomm อาจไม่โชคดีนักเนื่องจาก Adreno 300-series GPUs ถูกใช้กับการออกแบบที่ค่อนข้างใหม่และอุดมสมบูรณ์เช่น Snapdragon 410, Snapdragon 600, Snapdragon 800 และ 801 อย่างไรก็ตามฉันสงสัยว่าส่วนใหญ่จะหายไปตามเวลา วัลคานมีความเกี่ยวข้องอย่างแท้จริง
มันยังเร็วเกินไปที่จะบอกว่าวัลแคนจะเป็นตัวเปลี่ยนเกมหรือไม่ แต่ฉันคิดว่าคุณจะเห็นด้วยว่ามันมีศักยภาพมากมาย ฉันคิดว่ามันจะเป็นเรื่องใหญ่และฉันใช้สมมติฐานดังกล่าวจากประสบการณ์กว่าทศวรรษที่ครอบคลุมอุตสาหกรรม GPU อย่างไรก็ตามต้องใช้เวลาและฉันสงสัยว่า Vulkan จะแสดงตัวตนของมันในมือถือก่อนที่จะเริ่มเปลี่ยนภูมิทัศน์ของเดสก์ท็อป
ในขณะเดียวกันไดรเวอร์เอนจิ้นเกมและเกมที่ปรับให้เหมาะสมกับ Vulkan เราจะได้รับฮาร์ดแวร์ใหม่ ๆ มาเล่นด้วยและฉันไม่ได้หมายถึงการปรับแต่งฮาร์ดแวร์เพียงเล็กน้อย การพัฒนา Mobile SoC หยุดชะงักลงด้วยเหตุผลหลายประการที่ฉันจะไม่เข้าไปในตอนนี้ แต่ปี 2016 จะเป็นปีที่ยิ่งใหญ่สำหรับอุตสาหกรรมเนื่องจากโหนด FinFET ขนาด 14 / 16nm พร้อมให้บริการสำหรับผู้ผลิตจำนวนมากขึ้นและสามารถใช้งานได้ในเชิงเศรษฐกิจสำหรับฮาร์ดแวร์กระแสหลักมากกว่า ชิปเรือธง
นักพัฒนาจะมีฮาร์ดแวร์ที่ทรงพลังและมีประสิทธิภาพมากขึ้นในการเล่นด้วยและ API กราฟิกโอเวอร์เฮดแบบใหม่จะเป็นไอซิ่งบนเค้ก ฉันหวังเป็นอย่างยิ่งว่าผู้จำหน่ายฮาร์ดแวร์จะหยุดใช้ความละเอียดในการแสดงผลเป็นกลไกทางการตลาดเนื่องจากความละเอียดสูงอย่างไม่มีจุดหมายไม่ได้ทำอะไรเพื่อคุณภาพของภาพ แต่ยังคงสิ้นเปลืองพลังงาน น่าเสียดายเนื่องจากผู้บริโภคทั่วไปไม่ได้รับสิ่งนี้และต้องการเห็นตัวเลขที่มากขึ้นในกล่องฉันจึงสงสัยว่าสิ่งนี้จะไม่เกิดขึ้นในเร็ว ๆ นี้ ฉันตั้งใจจะตรวจสอบปัญหาแปลก ๆ นี้ในโพสต์ที่กำลังจะมาถึงดังนั้นหากคุณรู้สึกไม่สบายใจโปรดอดใจรอและอย่าลังเลที่จะระบายความคิดเห็นในส่วนความคิดเห็น