Vulkan คืออะไรและแตกต่างจาก OpenGL อย่างไร


150

Khronos Group (ร่างมาตรฐานหลัง OpenGL) เพิ่งประกาศVulkan :

Vulkan เป็น API แบบเปิดรุ่นใหม่สำหรับการเข้าถึงกราฟิกและการคำนวณบน GPU ที่ทันสมัย การออกแบบแบบภาคพื้นซึ่งก่อนหน้านี้เรียกว่า OpenGL Initiative ยุคหน้าให้แอปพลิเคชั่นควบคุมการเร่งความเร็วของ GPU โดยตรงเพื่อประสิทธิภาพและการคาดการณ์สูงสุด

หน้าของพวกเขาค่อนข้างค่อนข้างเป็นตลาด / ศัพท์แสง - หนักเช่นเดียวกับข่าวประชาสัมพันธ์ ... กล่าวง่ายๆว่า Vulkan มีความหมายต่อผู้พัฒนาเกมอย่างไร? (Gabe Newell ถูกอ้างถึงว่าเป็นที่โปรดปรานอย่างยิ่งโดยไม่มีคำอธิบายเพิ่มเติม)

ความสัมพันธ์ของ Vulkan กับ OpenGL คืออะไรกันแน่? ชื่อก่อนหน้านี้ของมันคือ "glNext" (ย่อมาจาก "Next Generation OpenGL Initiative") ทำให้ดูเหมือนเป็นสิ่งทดแทน


อัพเดท: สเปค Vulkan 1.0วางจำหน่ายในวันที่ 16-02-2559


3
Qo'noS และ Vulcan ...
IllidanS4

14
แปลสำหรับคนที่ไม่ทันกระแสStar Trek : KhronosและVulkanเสียงเหมือนQo'noSและVulcan ; ดาวเคราะห์โฮมเวิร์ลดของเผ่าพันธุ์คลิงออนและวัลแคน Leonard Nimoyนักแสดงของสป็อค (ตัวละครยอดนิยม) เพิ่งเสียชีวิตในปี 2015-02-27 ดังนั้นการเก็งกำไรก็มากมายจนทำให้ชื่อนั้นเป็นส่วย แต่มันเป็นเรื่องบังเอิญ: Vulkanคำขอเครื่องหมายการค้าถูกฟ้องใน 2015/02/19; ก่อนที่นิมอยจะเสียชีวิต
Anko

7
เสื้อคลุม -> Lava -> ภูเขาไฟ -> Vulkan
jmegaffin

1
@Bulal Vulkan == ภูเขาไฟในหลายภาษา (เยอรมันรัสเซีย (ปรับสำหรับ cyr.) ฯลฯ ) ดังนั้นมันจึงเป็นเสื้อคลุม -> Lava -> Vulkan (Volcano) จริง ๆ :)
user362515

คำตอบ:


118

Vulkan เป็น API ใหม่สำหรับกราฟิกที่เร่งความเร็วด้วยฮาร์ดแวร์ (และการคำนวณทั่วไป) ผ่าน GPU ดั้งเดิม OpenGL จะยังคงได้รับการพัฒนาต่อไปเนื่องจากเป็น API ระดับสูงกว่า Vulkan ที่ตั้งใจให้เป็น ในขั้นต้นเรียกว่า "glNext" เราสามารถอนุมานได้ว่า Vulkan นั้นน่าจะจบลงด้วยการเป็น "OpenGL 5" แต่ในที่สุดร่างกายมาตรฐานก็ตัดสินใจว่าชื่อใหม่จะต้องสอดคล้องกับการทำลาย API ที่ค่อนข้างสะอาด กระบวนทัศน์ OpenGL

ข้อได้เปรียบในทางปฏิบัติของ Vulkan สำหรับผู้พัฒนาเกมส่วนใหญ่เกี่ยวกับการควบคุม (เช่นอนุญาตให้มากขึ้นอาจทำให้สามารถเพิ่มประสิทธิภาพได้ดีขึ้นด้วยต้นทุนของการทำงานล่วงหน้ามากขึ้นในส่วนของผู้พัฒนา) โดยเฉพาะ:

  • API จะเน้นไปที่การสร้างบัฟเฟอร์คำสั่งแบบอะซิงโครนัสข้ามหลายเธรดและการประมวลผลตามลำดับของบัฟเฟอร์เหล่านั้นไปยังไพพ์ไลน์คำสั่ง สิ่งนี้สะท้อนถึงความเป็นจริงของฮาร์ดแวร์ที่ทันสมัย ซอฟต์แวร์ส่วนใหญ่ที่มีรายละเอียดสูงและ / หรือมีประสิทธิภาพสูงซึ่งสร้างขึ้นบน OpenGL ในปัจจุบันใช้พฤติกรรมแบบนี้ได้ การมี API รองรับตัวเองหมายความว่าผู้พัฒนาไม่จำเป็นต้องติดตั้งและบำรุงรักษาเฟรมเวิร์กนั้นเองหรือพวกเขาสามารถทำได้โดยใช้ความพยายามน้อยลง
  • งานการจัดการเธรดและหน่วยความจำนั้นถูกทิ้งไว้ที่แอปพลิเคชั่นไม่ใช่ไดรเวอร์ซึ่งช่วยให้นักพัฒนาเกมสามารถควบคุมพฤติกรรมเหล่านั้นได้มากขึ้น
  • การตรวจสอบและการวินิจฉัยชั้นสามารถเปิดใช้งานได้อย่างอิสระช่วยให้ในทฤษฎีเพื่อบูรณาการเครื่องมือที่ดีกว่ากับ API (บางสิ่งบางอย่าง OpenGL ตัวเองได้รับความเดือดร้อนจาก) และปิดการใช้งานของการตรวจสอบมากเกินไปในทางทฤษฎีที่ช่วยให้ " กราฟิกในระดับสาม " เป็นที่ performant มากขึ้น
  • ไม่มีความแตกต่างของ API ที่ยากระหว่างรุ่นมือถือและเดสก์ท็อปซึ่งในทางทฤษฎีแล้วจะช่วยลดความยุ่งยากในการย้ายเกมข้ามแพลตฟอร์ม

. Vulkan ของมาก C-เช่น / OpenGL เหมือนในโครงสร้างตื้น (รูปลักษณ์และความรู้สึกของ API โทร ฯลฯ มันเป็น แต่พิมพ์ที่ดีกว่า (ในว่าทุกอย่างไม่เป็นเปลือยintนั้นมี typedefs ที่เกี่ยวข้องและอื่น ๆ )

มันต่ำกว่าระดับ OpenGL มาก หนึ่งสามารถคาดหวังการเพิ่มขึ้นของการตั้งค่าการทำงานและความซับซ้อนระหว่าง OpenGL และ Vulkan ดังที่เห็นในการเปลี่ยน D3D9 เป็น D3D10 ซึ่งเปิดเผยรายละเอียดของการทำงานของอุปกรณ์ GPU กับลูกค้า API การเปลี่ยนผ่านนั้นคล้ายกับ D3D11 ถึง 12 มากกว่าเนื่องจาก D3D12 นั้นเป็น API ที่คล้ายกันมากกับ Vulkan ความสามารถที่ชาญฉลาด


18
อาจเป็นการดีที่จะชี้ให้เห็นว่า Vulkan นั้นเป็นรุ่น Mantle: community.amd.com/community/amd-blogs/amd-gaming/blog/2015/03/ ที่ ยอดเยี่ยมที่ได้รับการซ้ำแล้วซ้ำอีกOpenGL ยกเว้นด้วยส่วนglนำหน้าubiquitous แทนที่ด้วยvk: blog.imgtec.com/powervr/ …
jmegaffin

ฉันได้รับการสันนิษฐานว่าเป็นกรณีนี้ แต่ไม่เคยเห็นหลักฐานใด ๆ จนกว่าลิงก์นั้นขอบคุณ
Josh

3
FYI คุณจะสามารถแทนที่การเก็งกำไรและคาดเดาด้วยความจริงที่ยาก (บางส่วน) หลังจากการนำเสนอของ Valve ในวันพฤหัสบดีและเลื่อนการชำระหนี้ของสมาชิก Khronos เปิดเผยรายละเอียดเพิ่มเติมคือ (ส่วนใหญ่) ยกขึ้น
Sean Middleditch

4
ฉันพบว่าสิ่งที่เกิดขึ้นในโหมดแชปเตอร์ของ shader เล็กน้อยน่าสนใจเพราะเมื่อก่อนเคยเป็นภาษาแอสเซมบลีที่เรียบง่ายสำหรับ shaders จากนั้นมันก็ถูกแทนที่ด้วยภาษาที่ซับซ้อน (GLSL) และตอนนี้เรากลับไปเป็นภาษา bytecode แบบง่าย ๆ
immibis

2
ฉันคิดว่า Vulkan เช่น Mantle จะยืนอยู่ติดกับ OpenGL สำหรับการเข้าถึงระดับต่ำมากขึ้นไม่ได้แทนที่อย่างสมบูรณ์ อย่างน้อยนั่นคือสิ่งที่ฉันได้อ่านจนถึงตอนนี้ หรือ Vulkan จะครอบคลุมทั้งการดำเนินงานระดับต่ำและระดับสูงหรือไม่
รอยต.

18

เพื่ออธิบายรายละเอียดเกี่ยวกับอนาคตของ OpenGL:

OpenGL อาจให้ประสิทธิภาพเทียบเคียงกับ Vulkan ในการเรียกสายต่อวินาที แต่ยังรวมถึงค่าใช้จ่ายทั่วไปของไดรเวอร์:

  • ส่วนขยาย OpenGL ล่าสุดที่จริงแล้วลบค่าใช้จ่ายของไดรเวอร์จำนวนมากโดยทำทุกอย่างที่ไม่มีสิ่งใด (เช่นARB_direct_state_access(หลัก 4.5) ARB_bindless_texture,, ... )
  • ด้วยการแม็พแบบถาวร ( ARB_buffer_storageแกนกลางใน 4.4) หน่วยความจำบัฟเฟอร์สามารถเข้าถึงได้โดยตรงจาก CPU ดังนั้นการซิงโครไนซ์กับ GPU ก็ชัดเจนเช่นเดียวกับ Vulkan
  • ส่วนขยายในอนาคตเช่นNV_command_list(ดูงานนำเสนอ Siggraph Asia 2014 ของ Tristan Lorach ) มีแนวโน้มที่จะมอบให้กับ OpenGL เช่นเดียวกับ "GPU ขั้นตอนการให้อาหาร" กับ Vulkan

11
นี่ไม่ใช่คำตอบสำหรับคำถามด้วยตัวเอง
MichaelHouse

1

Khronos เพิ่งประกาศเปิดตัว Vulkan API ใหม่ทั้งหมดซึ่งจะเสริม (และในบางกรณีแทนที่) OpenGL และ OpenGL ES Vulkan เป็น API ค่าใช้จ่ายต่ำที่ออกแบบมาเพื่อนำรหัส“ ใกล้กับโลหะ” เพิ่มประสิทธิภาพและประสิทธิภาพ มันขึ้นอยู่กับ Mantle API ของ AMD และข้อมูลจำเพาะขั้นสุดท้ายคาดว่าจะมีในปลายปีนี้

ในบทความนี้ - ภาพรวมโดยย่อของ Vulkan API - Toptal Technical Editor Nermin Hajdarbegovic อธิบายว่าทำไม Vulkan อาจเป็นเรื่องใหญ่ในระยะยาว อาจใช้เวลาสักครู่ แต่ API ข้ามแพลตฟอร์มนี้สามารถปรับปรุงประสิทธิภาพ 3D ในอุปกรณ์บางประเภทได้อย่างมากโดยเฉพาะอย่างยิ่งโปรเซสเซอร์แอปพลิเคชั่นมัลติคอร์ที่ใช้ในสมาร์ทโฟนและแท็บเล็ตหลายพันล้านเครื่อง


2
"Khronos เพิ่งประกาศเปิดตัว Vulkan API ใหม่ทั้งหมด" อืมไม่ใช่เมื่อวันที่ 18 สิงหาคมที่ผ่านมา มันไม่ได้ถูก "เผยแพร่" โดยคำจำกัดความของคำนั้น ๆ ตอนนี้เป็นวันที่ 8 ธันวาคมแล้วและยังไม่เปิดตัว
Nicol Bolas

2
@NicolBolas - ตอนนี้มี เปิดตัวแล้ววันนี้: khronos.org/vulkan
beatgammit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.