อ่าน 20 นาที
วัลคาน
Vulkan เป็น API ข้ามแพลตฟอร์ม และ มาตรฐานเปิด สำหรับ กราฟิก 3 มิติ และ การประมวลผลแบบขนาน [ 21 ] [ 22 ] [ 23 ] มี จุดประสงค์เพื่อแก้ไขข้อบกพร่องของ OpenGL...
วัลคาน
| วัลคาน | |
|---|---|
| ผู้เขียนต้นฉบับ | AMD , DICE (ดีไซน์ Mantleดั้งเดิม) |
| นักพัฒนา | กลุ่ม Khronos (รูปแบบที่บริจาคและได้มา เช่น Vulkan) [ 1 ] |
| ปล่อย | 16 กุมภาพันธ์ 2559 [ 2 ] |
| เวอร์ชันเสถียร | 1.4.354 [ 3 ] |
| เขียนเป็น | C [ 4 ] (มี API C++ ให้ใช้งานด้วย ) [ 5 ] |
| ระบบปฏิบัติการ | Android , Linux , BSD Unix , [ 6 ] Windows , Nintendo Switch , [ 7 ] [ 8 ] [ 9 ] Fuchsia , Raspberry Pi , [ 10 ] vxWorks , [ 11 ] QNX , [ 12 ] HarmonyOS , OpenHarmony , Oniro , Haiku , Stadia , Tizen [ 13 ] [ 14 ]ผ่านวิธีแก้ปัญหาการพกพา: macOS , [ 15 ] iOS , [ 16 ] Aurora OS [ 17 ] |
| พิมพ์ | API กราฟิกและการคำนวณ 3 มิติ [ 18 ] |
| ใบอนุญาต | ใบอนุญาตซอฟต์แวร์ Apache 2.0 , ใบอนุญาต MIT , Creative Commons Attribution 4.0 International [ 19 ] |
| เว็บไซต์ | https://www.vulkan.org/ [ 20 ] |
| ที่เก็บข้อมูล |
|
Vulkanเป็นAPI ข้ามแพลตฟอร์ม และมาตรฐานเปิดสำหรับกราฟิก 3 มิติและการประมวลผลแบบขนาน [ 21 ] [ 22 ] [ 23 ] มีจุดประสงค์เพื่อแก้ไขข้อบกพร่องของOpenGLและอนุญาตให้นักพัฒนาควบคุมGPU ได้มากขึ้น ออกแบบมาเพื่อรองรับ GPU , CPUและระบบปฏิบัติการที่หลากหลาย รวมถึง CPU แบบมัลติคอร์ รุ่นใหม่ ด้วย
Vulkan มีจุดประสงค์เพื่อนำเสนอประสิทธิภาพที่สูงขึ้นและ การใช้งาน CPUและGPU ที่มีประสิทธิภาพมากขึ้น เมื่อเทียบกับ API OpenGLและDirect3D 11 รุ่นเก่า โดยมี API ระดับต่ำกว่ามากซึ่งคล้ายคลึงกับวิธีการทำงานของ GPU สมัยใหม่ Vulkan เทียบได้กับMetal APIของAppleและDirect3D 12ของMicrosoftนอกจากจะใช้ CPU น้อยลงแล้ว Vulkan ยังได้รับการออกแบบมาเพื่อให้ผู้พัฒนาสามารถกระจายงานไปยังคอร์ CPU หลายตัวได้ ดียิ่งขึ้น [ 24 ]
Vulkan ได้รับการประกาศครั้งแรกโดย Khronos Group ซึ่งเป็นองค์กรไม่แสวงหาผลกำไรในงานGDC 2015 [ 18 ] [ 25 ] [ 26 ]ในตอนแรก Vulkan API ถูกเรียกว่า " โครงการ OpenGL รุ่นต่อไป " หรือ "OpenGL next" [ 27 ]โดยKhronosแต่การใช้ชื่อเหล่านั้นถูกยกเลิกเมื่อมีการประกาศใช้ชื่อ "Vulkan" [ 28 ]
Vulkan ได้รับการพัฒนาและสร้างขึ้นจากส่วนประกอบของMantle API ของAMDซึ่ง AMD ได้บริจาคให้กับ Khronos โดยมีเจตนาที่จะมอบรากฐานให้ Khronos เริ่มพัฒนา API ระดับต่ำที่พวกเขาสามารถกำหนดมาตรฐานได้ทั่วทั้งอุตสาหกรรม[ 18 ]
คุณสมบัติ

Vulkan มีจุดประสงค์เพื่อมอบข้อได้เปรียบที่หลากหลายเหนือ API อื่นๆ รวมถึงเหนือOpenGL ซึ่งเป็นรุ่นก่อนหน้า Vulkan มีค่าใช้จ่ายในการทำงานต่ำกว่า ควบคุม GPU ได้โดยตรงมากขึ้น และใช้ CPU น้อยลง[ 26 ]แนวคิดโดยรวมและชุดคุณสมบัติคล้ายกับMantleซึ่งต่อมา Microsoft ได้นำไปใช้กับDirect3D 12และ Apple นำไปใช้กับ Metal
ข้อดีที่คาดหวังของ Vulkan เมื่อเทียบกับ API รุ่นก่อนหน้า ได้แก่:
ข้ามแพลตฟอร์ม
Vulkan สามารถใช้งานได้บนระบบปฏิบัติการและสถาปัตยกรรม สมัยใหม่หลายประเภท และมี API เดียวสำหรับอุปกรณ์กราฟิกทั้งบนเดสก์ท็อปและมือถือ ในขณะที่ก่อนหน้านี้มีการแบ่งแยกกันระหว่าง OpenGL และOpenGL ESตามลำดับ เช่นเดียวกับ OpenGL และแตกต่างจาก Direct3D 12 API ของ Vulkan ไม่ได้ถูกจำกัดไว้กับระบบปฏิบัติการหรือรูปแบบอุปกรณ์ใดอุปกรณ์หนึ่ง Vulkan ทำงานแบบเนทีฟบนอย่างน้อยAndroid , Linux , BSD Unix , QNX , Haiku , [ 29 ] Nintendo Switch , Raspberry Pi , Stadia , Fuchsia , TizenและWindows 7 , 8 , 10และ11 MoltenVKให้การสนับสนุนบุคคลที่สามที่ได้รับอนุญาตอย่างเสรี[ 30 ] [ 31 ] [ 32 ]สำหรับmacOS , iOSและtvOSโดยการห่อหุ้ม API Metal ของ Apple [ 33 ]
ลดการใช้งาน CPU
Vulkan ลดภาระบน CPU โดยใช้การจัดกลุ่มและการเพิ่มประสิทธิภาพระดับต่ำอื่นๆ ซึ่งช่วยลดภาระงานของ CPU และทำให้ CPU ว่างเพื่อทำการคำนวณหรือเรนเดอร์ได้มากขึ้นกว่าที่ควรจะเป็น[ 34 ] [ 35 ]
การออกแบบที่รองรับการทำงานแบบมัลติเธรด
Direct3D 11 และ OpenGL 4 ได้รับการออกแบบมาเพื่อใช้งานกับ CPU แบบแกนเดี่ยว ในตอนแรก และได้รับการปรับปรุงเพิ่มเติมเพื่อให้สามารถทำงานบน CPU แบบหลายแกนได้ แม้ว่านักพัฒนาแอปพลิเคชันจะใช้การปรับปรุงเพิ่มเติมเหล่านี้แล้วก็ตาม API เหล่านี้มักจะไม่สามารถปรับขนาดได้ดีบน CPU แบบหลายแกน Vulkan นำเสนอการปรับขนาดที่ดีขึ้นบน CPU แบบหลายแกนเนื่องจากสถาปัตยกรรมเธรดที่ทันสมัย[ 36 ] [ 37 ]
เชเดอร์ที่คอมไพล์ล่วงหน้า
OpenGL ใช้ภาษาระดับสูงGLSLสำหรับการเขียนเชเดอร์ซึ่งบังคับให้ไดรเวอร์ OpenGL แต่ละตัวต้องใช้คอมไพเลอร์ ของตนเอง สำหรับ GLSL จากนั้นคอมไพเลอร์นี้จะทำงานในระหว่างรันไทม์ของแอปพลิเคชันเพื่อแปลงเชเดอร์ของโปรแกรมเป็นรหัสเครื่องของ GPU ในทางตรงกันข้าม ไดรเวอร์ Vulkan ควรจะรับเชเดอร์ที่แปลงเป็นรูปแบบไบนารีระดับกลางที่เรียกว่าSPIR-V (Standard Portable Intermediate Representation) ซึ่งคล้ายกับรูปแบบไบนารีที่เช เดอร์ HLSLถูกคอมไพล์ในDirect3Dการอนุญาตให้คอมไพล์เชเดอร์ล่วงหน้าช่วยปรับปรุงความเร็วในการเริ่มต้นแอปพลิเคชันและสามารถใช้เชเดอร์ได้หลากหลายมากขึ้นต่อฉาก ไดรเวอร์ Vulkan จำเป็นต้องทำการเพิ่มประสิทธิภาพเฉพาะ GPU และการสร้างโค้ดเท่านั้น ส่งผลให้การบำรุงรักษาไดรเวอร์ง่ายขึ้น และอาจทำให้แพ็กเกจไดรเวอร์มีขนาดเล็กลง[ 38 ]นักพัฒนาแอปพลิเคชันในปัจจุบันยังสามารถปกปิดโค้ดเชเดอร์ที่เป็นกรรมสิทธิ์ได้ง่ายขึ้น เนื่องจากเชเดอร์ไม่ได้ถูกจัดเก็บโดยตรงเป็นซอร์สโค้ด อย่างไรก็ตามมีเครื่องมือที่สามารถถอดรหัส SPIR-V เป็นโค้ดระดับสูงที่มนุษย์อ่านได้[ 37 ] [ 23 ]
คนอื่น
- Vulkan นำเสนอการจัดการแบบรวมศูนย์สำหรับเคอร์เนลการคำนวณและเชเดอร์ กราฟิก ทำให้ไม่จำเป็นต้องใช้ API การคำนวณแยกต่างหากร่วมกับAPI กราฟิกอีก ต่อไป
- การติดตามรังสีมีให้ในชุดส่วนขยายข้ามผู้จำหน่าย ซึ่งโดยรวมแล้วคล้ายคลึงกับAPI การติดตามรังสี OptiXและDirectX [ 39 ]ไม่มีฟังก์ชันดังกล่าวใน OpenGL
- มี การเร่งความเร็ววิดีโอ สำหรับ การถอดรหัสและการเข้ารหัส เช่นH.264และH.265
OpenGL เทียบกับ Vulkan
| โอเพ่นจีแอล | วัลคาน[ 40 ] |
|---|---|
| มีเครื่องสถานะสากลเพียงเครื่องเดียว | โค้ดนี้เป็นแบบอิงตามวัตถุ โดยไม่มีสถานะส่วนกลาง |
| รัฐนั้นผูกติดอยู่กับบริบทเดียว | แนวคิดสถานะทั้งหมดจะถูกกำหนดไว้ในบัฟเฟอร์ คำสั่ง |
| การดำเนินการต่างๆ สามารถทำได้ตามลำดับเท่านั้น | การเขียนโปรแกรม แบบมัลติเธรดนั้นเป็นไปได้ |
| โดยปกติแล้ว หน่วยความจำ GPUและการซิงโครไนซ์จะถูกซ่อนไว้ | สามารถควบคุมการจัดการหน่วยความจำและการซิงโครไนซ์ได้อย่างชัดเจน |
| มีการตรวจสอบข้อผิดพลาดอย่างละเอียดถี่ถ้วน | ไดรเวอร์ Vulkan ไม่ทำการตรวจสอบข้อผิดพลาดในระหว่างการทำงานมีเพียงเลเยอร์การตรวจสอบความถูกต้องสำหรับนักพัฒนาเท่านั้น |
AMD ระบุว่า "Vulkan รองรับการควบคุมใกล้โลหะ ทำให้ประสิทธิภาพเร็วขึ้นและคุณภาพของภาพดีขึ้นบน Windows 7, Windows 8.1, Windows 10 และ Linux ไม่มี API กราฟิกอื่นใดที่ให้การผสมผสานที่ทรงพลังของความเข้ากันได้กับระบบปฏิบัติการ คุณสมบัติการเรนเดอร์ และประสิทธิภาพของฮาร์ดแวร์เช่นเดียวกัน" [ 41 ]
ในปี 2016 NVIDIA ซึ่งเป็นคู่แข่งในการผลิต GPU ของ AMD ระบุว่า "OpenGL ยังคงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับกรณีการใช้งานจำนวนมาก เนื่องจากมีความซับซ้อนและภาระในการบำรุงรักษาน้อยกว่า Vulkan มาก ในขณะที่ในหลายกรณีก็ยังคงให้ประสิทธิภาพโดยรวมที่ยอดเยี่ยม" [ 42 ]
เวอร์ชัน
วัลคาน 1.0
Vulkan 1.0 เปิดตัวในเดือนกุมภาพันธ์ 2016
วัลคาน 1.1
ในงาน SIGGRAPH 2016 Khronos ได้ประกาศว่า Vulkan จะได้รับการสนับสนุนคุณสมบัติมัลติ GPU อัตโนมัติ คล้ายกับสิ่งที่ Direct3D 12 นำเสนอ[ 43 ]การสนับสนุนมัลติ GPU ที่รวมอยู่ใน API ช่วยลดความจำเป็นในการใช้SLIหรือCrossfireซึ่งต้องใช้การ์ดกราฟิกแบบเดียวกัน ในทางกลับกัน มัลติ GPU ใน API ช่วยให้ API สามารถแบ่งภาระงานอย่างชาญฉลาดระหว่าง GPU ที่แตกต่างกันอย่างสิ้นเชิงสองตัวขึ้นไป[ 44 ]ตัวอย่างเช่น GPU ในตัวที่รวมอยู่ใน CPU สามารถใช้ร่วมกับ GPU เฉพาะระดับไฮเอนด์เพื่อเพิ่มประสิทธิภาพเล็กน้อย
เมื่อวันที่ 7 มีนาคม 2018 Vulkan 1.1 ได้ถูกเผยแพร่โดย Khronos Group [ 45 ]การอัปเดตครั้งสำคัญครั้งแรกของ API นี้ได้กำหนดมาตรฐานส่วนขยายหลายอย่าง เช่น มุมมองหลายมุม กลุ่มอุปกรณ์ การแชร์ข้ามกระบวนการและข้าม API ฟังก์ชันการคำนวณขั้นสูง การสนับสนุน HLSLและการสนับสนุนYCbCr [ 46 ]ในขณะเดียวกัน ก็ได้นำมาซึ่งความเข้ากันได้ที่ดีขึ้นกับ DirectX 12 การสนับสนุน multi-GPU อย่างชัดเจน (ส่วนขยายเสริม[ 47 ] สำหรับฮาร์ดแวร์ที่รองรับ เช่น GPU ของ Nvidia บางรุ่น บน Windows และ Android) การสนับสนุนการติดตามรังสี[ 48 ] [ 49 ]และวางรากฐานสำหรับ GPU รุ่นต่อไป[ 50 ]ควบคู่ไปกับ Vulkan 1.1 นั้นSPIR-Vได้รับการอัปเดตเป็นเวอร์ชัน 1.3 [ 46 ]
วัลคาน 1.2
เมื่อวันที่ 15 มกราคม 2020 Vulkan 1.2 [ 51 ]ได้รับการเผยแพร่โดย Khronos Group [ 52 ]การอัปเดตครั้งสำคัญครั้งที่สองของ API นี้ได้รวมส่วนขยาย Vulkan ที่ใช้กันทั่วไปและได้รับการพิสูจน์แล้วเพิ่มเติมอีก 23 รายการเข้ากับมาตรฐาน Vulkan พื้นฐาน คุณสมบัติที่สำคัญที่สุดบางประการ ได้แก่ "เซมาฟอร์ไทม์ไลน์สำหรับการซิงโครไนซ์ที่จัดการได้ง่าย" "แบบจำลองหน่วยความจำที่เป็นทางการเพื่อกำหนดความหมายของการซิงโครไนซ์และการดำเนินการหน่วยความจำในเธรดต่างๆ อย่างแม่นยำ" และ "การจัดทำดัชนีตัวอธิบายเพื่อเปิดใช้งานการใช้เค้าโครงตัวอธิบายซ้ำโดยเชเดอร์หลายตัว" คุณสมบัติเพิ่มเติมของ Vulkan 1.2 ช่วยเพิ่มความยืดหยุ่นในการใช้งาน API กราฟิกอื่นๆ บน Vulkan รวมถึง "เค้าโครงมาตรฐานบัฟเฟอร์แบบรวม" "เค้าโครงบล็อกสเกลาร์" และ "การใช้งานสเตนซิลแยกต่างหาก" [ 53 ]
วัลคาน 1.3
เมื่อวันที่ 25 มกราคม 2022 Vulkan 1.3 ได้รับการเผยแพร่โดย Khronos Group [ 54 ]การอัปเดต API ครั้งสำคัญครั้งที่สามนี้ได้รวมส่วนขยาย Vulkan ที่ใช้กันทั่วไปและได้รับการพิสูจน์แล้วเพิ่มเติมอีก 23 รายการเข้ากับมาตรฐาน Vulkan พื้นฐาน[ 55 ] Vulkan 1.3 มุ่งเน้นไปที่การลดการแบ่งส่วนโดยทำให้คุณสมบัติใหม่ไม่ใช่ตัวเลือกเสริมสำหรับอุปกรณ์ที่จะถือว่าสามารถใช้งาน Vulkan 1.3 ได้[ 54 ] [ 56 ]คุณสมบัติใหม่ใน Vulkan 1.3 ได้แก่ การเรนเดอร์แบบไดนามิก สถานะไดนามิกเพิ่มเติม API การซิงโครไนซ์ที่ได้รับการปรับปรุง และโปรไฟล์อุปกรณ์
วัลคาน 1.4
เมื่อวันที่ 3 ธันวาคม พ.ศ. 2567 Vulkan 1.4 ได้รับการเผยแพร่โดย Khronos Group [ 57 ]
คุณสมบัติที่วางแผนไว้
เมื่อเปิดตัว OpenCL 2.2 กลุ่ม Khronos ได้ประกาศว่า OpenCL จะผสานรวมกับ Vulkan เท่าที่จะเป็นไปได้ เพื่อเปิดใช้งานความยืดหยุ่นในการใช้งานซอฟต์แวร์ OpenCL บน API ทั้งสอง[ 58 ] [ 59 ]ขณะนี้ได้มีการสาธิตให้เห็นแล้วโดยAdobe Premiere Rush ที่ใช้ คอมไพ เลอร์ โอเพนซอร์ส clspv [ 60 ] เพื่อคอมไพล์โค้ดเคอร์เนล OpenCL Cจำนวนมาก ให้ทำงานบน รันไทม์ Vulkan สำหรับการใช้งานบนAndroid [ 61 ]
ประวัติศาสตร์
กลุ่ม Khronos เริ่มโครงการสร้าง API กราฟิกเจเนอเรชั่นถัดไปในเดือนกรกฎาคม 2014 โดยมีการประชุมเปิดตัวที่Valve [ 62 ]ในงานSIGGRAPH 2014 โครงการนี้ได้รับการประกาศต่อสาธารณะพร้อมกับการเชิญชวนผู้เข้าร่วม[ 18 ]
ตามข้อมูลจากสำนักงานสิทธิบัตรและเครื่องหมายการค้าของสหรัฐอเมริกา เครื่องหมายการค้า Vulkan ได้รับการยื่นจดทะเบียนเมื่อวันที่ 19 กุมภาพันธ์ พ.ศ. 2558 [ 63 ]
Vulkan ได้รับการตั้งชื่อและประกาศอย่างเป็นทางการในงาน Game Developers Conference 2015 แม้ว่าก่อนหน้านั้นจะมีการคาดการณ์และข่าวลือเกี่ยวกับ API ใหม่ที่เรียกว่า " glNext " ก็ตาม [ 64 ]
2015
ในช่วงต้นปี 2015 LunarG (ได้รับทุนจากValve ) ได้พัฒนาและนำเสนอไดรเวอร์ Linux สำหรับ Intel ซึ่งช่วยให้สามารถใช้งาน Vulkan บนกราฟิกรวม HD 4000 ซีรีส์ได้ แม้ว่าไดรเวอร์ Mesa แบบโอเพนซอร์สจะไม่รองรับ OpenGL 4.0 อย่างสมบูรณ์จนกระทั่งปลายปีนั้น[ 65 ] [ 66 ]ยังคงมีความเป็นไปได้[ 67 ]ที่จะรองรับ Sandy Bridge เนื่องจากรองรับการคำนวณผ่าน Direct3D11
เมื่อวันที่ 10 สิงหาคม 2558 Google ประกาศว่า Androidเวอร์ชันในอนาคตจะรองรับ Vulkan [ 68 ] Android 7.x "Nougat"เปิดตัวการรองรับ Vulkan เมื่อวันที่ 22 สิงหาคม 2559 Android 8.0 "Oreo"มีการรองรับอย่างเต็มรูปแบบ
เมื่อวันที่ 18 ธันวาคม พ.ศ. 2558 กลุ่ม Khronos ได้ประกาศว่าข้อกำหนด Vulkan เวอร์ชัน 1.0 ใกล้จะเสร็จสมบูรณ์แล้ว และจะวางจำหน่ายเมื่อมีไดรเวอร์ที่สอดคล้อง[ 26 ]
2016
ข้อกำหนด Vulkan ฉบับเต็มและ SDK Vulkan แบบโอเพนซอร์สได้รับการเผยแพร่เมื่อวันที่ 16 กุมภาพันธ์ 2559 [ 69 ]
2018
เมื่อวันที่ 26 กุมภาพันธ์ 2018 Khronos Group ได้ประกาศว่า Vulkan API พร้อมใช้งานสำหรับทุกคนบนmacOSและiOSผ่าน ไลบรารี MoltenVKซึ่งทำให้ Vulkan สามารถทำงานบนMetalได้[ 70 ]การพัฒนาใหม่ๆ อื่นๆ ได้ถูกนำเสนอในงาน SIGGRAPH 2018 [ 71 ]ก่อนหน้านี้ MoltenVK เป็นโซลูชันที่เป็นกรรมสิทธิ์และได้รับอนุญาตในเชิงพาณิชย์ แต่Valveได้ทำข้อตกลงกับผู้พัฒนา Brenwill Workshop Ltd เพื่อเปิดเผยซอร์สโค้ดของ MoltenVK ภายใต้ใบอนุญาต Apache 2.0 และเป็นผลให้ไลบรารีนี้พร้อมใช้งานบน GitHubแล้วValveยังประกาศด้วยว่าDota 2 สามารถทำงานบน macOSได้ตั้งแต่วันที่ 26 กุมภาพันธ์ 2018 โดยใช้ Vulkan API ซึ่งใช้ MoltenVK เป็นพื้นฐาน[ 32 ]
2019
เมื่อวันที่ 25 กุมภาพันธ์ 2562 ได้มีการประกาศจัดตั้งกลุ่มทำงาน Vulkan Safety Critical (SC) เพื่อนำการเร่งความเร็ว GPU ของ Vulkan มาใช้ในอุตสาหกรรมที่สำคัญด้านความปลอดภัย[ 72 ]
บริการ สตรีมมิ่งเกมบนคลาวด์ Stadia ของ Google ใช้ Vulkan บนเซิร์ฟเวอร์ที่ใช้ Linux พร้อมGPU ของ AMD [ 73 ]
2020
Vulkan 1.2 ได้ถูกปล่อยออกมาเมื่อวันที่ 15 มกราคม 2020
ควบคู่ไปกับการเปิดตัว Vulkan 1.2 กลุ่ม Khronos ได้โพสต์บล็อกโพสต์ซึ่งพิจารณาว่าการสนับสนุน HLSL ใน Vulkan ได้บรรลุสถานะ "พร้อมใช้งานจริง" แล้ว เนื่องจากมีการปรับปรุงในคอมไพเลอร์ DXC ของ Microsoft และคอมไพเลอร์ glslang ของ Khronos รวมถึงคุณสมบัติใหม่ใน Vulkan 1.2 ที่ช่วยเพิ่มการสนับสนุน HLSL [ 74 ]
เมื่อวันที่ 3 กุมภาพันธ์ 2020 มูลนิธิ Raspberry Pi ได้ประกาศว่ากำลังพัฒนาไดรเวอร์ Vulkan แบบโอเพนซอร์สสำหรับRaspberry Piซึ่งเป็นคอมพิวเตอร์บอร์ดเดี่ยวที่ได้รับความนิยม[ 75 ]เมื่อวันที่ 20 มิถุนายน 2020 วิศวกรกราฟิกได้เปิดเผยว่าเขาได้สร้างไดรเวอร์ดังกล่าวขึ้นมาหลังจากทำงานมาสองปี ซึ่งสามารถรัน VkQuake3 ได้ที่ความเร็วมากกว่า 100 FPS บนคอมพิวเตอร์ขนาดเล็ก[ 76 ]
เมื่อวันที่ 17 มีนาคม 2020 Khronos Group ได้เผยแพร่ ส่วนขยาย Ray Tracingซึ่งอิงตาม ส่วนขยายที่เป็นกรรมสิทธิ์ของ Nvidiaโดยมีส่วนขยายหลักบางส่วนและการเปลี่ยนแปลงเล็กน้อยหลายประการ ซึ่งอิงตามAPI OptiX ของ Nvidia [ 77 ] [ 78 ]เมื่อวันที่ 23 พฤศจิกายน 2020 ส่วนขยาย Ray Tracing เหล่านี้ได้รับการสรุปขั้นสุดท้าย[ 47 ]
เมื่อวันที่ 24 พฤศจิกายน 2020 มูลนิธิ Raspberry Pi ได้ประกาศว่าไดรเวอร์สำหรับRaspberry Pi 4เป็นไปตามมาตรฐาน Vulkan 1.0 [ 79 ]
2022
Vulkan 1.3 เปิดตัวเมื่อวันที่ 25 มกราคม 2022
เมื่อวันที่ 1 มีนาคม พ.ศ. 2565 Vulkan SC 1.0 ได้ถูกปล่อยออกมา ซึ่งนำกราฟิกและการประมวลผล Vulkan มาใช้ในอุตสาหกรรมที่มีความสำคัญด้านความปลอดภัย โดยอิงตามมาตรฐาน Vulkan 1.2 [ 80 ]
เมื่อวันที่ 1 สิงหาคม พ.ศ. 2565 มูลนิธิ Raspberry Pi ได้ประกาศว่าไดรเวอร์สำหรับRaspberry Pi 4เป็นไปตามมาตรฐาน Vulkan 1.2 [ 81 ]
เมื่อวันที่ 1 กันยายน พ.ศ. 2565 Mesh Shading สำหรับ Vulkan ได้ถูกปล่อยออกมา[ 82 ] [ 83 ]
2024
มีการประกาศแผนงาน Vulkan ใหม่เมื่อวันที่ 25 มกราคม 2024 [ 84 ]มีการเปิดตัวส่วนขยายใหม่สำหรับการถอดรหัส วิดีโอ AV1 เมื่อวันที่ 1 กุมภาพันธ์ 2024 [ 85 ]
การสนับสนุนจากผู้จำหน่ายต่างๆ

vulkaninfoแสดงข้อมูลเกี่ยวกับอินสแตนซ์ Vulkan ที่รองรับ และvkcubeโปรแกรมสำหรับทดสอบการใช้งาน Vulkan บนระบบข้อกำหนดเบื้องต้นระบุว่าไดรเวอร์ Vulkan สามารถใช้งานได้บนฮาร์ดแวร์ใดๆ ที่รองรับ OpenGL ES 3.1 หรือ OpenGL 4.x ขึ้นไป[ 86 ]เนื่องจากการสนับสนุน Vulkan ต้องใช้ไดรเวอร์กราฟิกใหม่ จึงไม่ได้หมายความว่าอุปกรณ์ที่มีอยู่ทุกเครื่องที่รองรับ OpenGL ES 3.1 หรือ OpenGL 4.x จะมีไดรเวอร์ Vulkan ให้ใช้งานได้เสมอไป
อินเทล
ณ เดือนมีนาคม พ.ศ. 2566 Intel ได้แยกการสนับสนุนไดรเวอร์ Vulkan ออกเป็นWindows [ 87 ] และ Linux [ 88 ] ไดรเวอร์ทั้งหมดได้รับการพัฒนาโดย Intel
บน Windows โปรเซสเซอร์SkylakeถึงIce Lakeรองรับ Vulkan 1.3 [ 89 ]โดยมีการสนับสนุนที่จำกัดหลังจากเดือนกรกฎาคม 2022 เนื่องจากการอัปเดตในอนาคตจะครอบคลุมเฉพาะการแก้ไขด้านความปลอดภัยเท่านั้น[ 87 ] Iris Xe และรุ่นใหม่กว่าได้รับการสนับสนุนอย่างเต็มที่ตั้งแต่เดือนมีนาคม 2023 [ 90 ]
บน Linux ณ เดือนมีนาคม 2023 มีการสนับสนุน Vulkan ที่ไม่สมบูรณ์สำหรับHaswell [ 91 ]โดยไม่เป็นไปตามมาตรฐาน Vulkan 1.0 [ 92 ]นอกเหนือจาก Haswell แล้วIvy BridgeและBroadwellยังได้รับการสนับสนุนโดยไดรเวอร์ Vulkan รุ่นเก่าในMesaที่เรียกว่า HASVK [ 88 ]ส่วน Skylake และรุ่นใหม่กว่าได้รับการสนับสนุนโดยไดรเวอร์ใน Mesa ที่เรียกว่า ANV [ 88 ]
เอดีเอ็ม
บน Windows รองรับ Vulkan 1.2 ตั้งแต่GCN 1.0 ถึงGCN 3.0 [ 93 ] [ 94 ] [ 95 ]โดยไม่มีการวางแผนอัปเดตเพิ่มเติมหลังจากเดือนมิถุนายน 2021 [ 96 ] GCN 4.0 และเวอร์ชันใหม่กว่ารองรับ Vulkan 1.3 [ 97 ]
บน Linux มีไดรเวอร์ Vulkan หลายประเภทที่มีการรองรับฮาร์ดแวร์ที่แตกต่างกันและทับซ้อนกัน มีไดรเวอร์ Vulkan แบบโอเพนซอร์สที่เรียกว่า AMDVLK ซึ่งพัฒนาโดย AMD ซึ่งจำลองการรองรับของ Windows [ 98 ]นอกจากนี้ยังมีไดรเวอร์ที่เป็นกรรมสิทธิ์ที่เรียกว่า AMDGPU-PRO ซึ่งไม่แนะนำให้ผู้ใช้ส่วนใหญ่ใช้ ณ เดือนมีนาคม 2023 [ 99 ]
นอกจากนี้ยังมีไดรเวอร์ที่แนะนำชื่อ RADV ใน Mesa ซึ่งพัฒนาโดย Valve, Red Hat, [ 100 ] Google [ 101 ]และอื่นๆ ไดรเวอร์นี้ ณ เดือนมีนาคม 2023 รองรับการ์ด GCN และ RDNA ทั้งหมด [ 102 ]การสนับสนุน GCN 1.0 ถึง GCN 2.0 ของไดรเวอร์ RADV นี้จำเป็นต้องเปิดใช้งานการสนับสนุนแบบทดลองในโมดูลเคอร์เนล amdgpuสำหรับเคอร์เนลก่อน 6.19 [ 103 ]แต่ปัจจุบันเป็นค่าเริ่มต้น[ 104 ]ซึ่งเปิดใช้งาน Vulkan 1.3 บน GCN 1 ถึง 2 และ Vulkan 1.4 บนรุ่นใหม่กว่า[ 105 ]
ไนอาวุส
บน Windows และ Linux มีไดรเวอร์ Vulkan ที่พัฒนาโดย NVIDIA ซึ่งรองรับ Vulkan 1.2 บนการ์ดKepler [ 106 ]โดยไม่มีการวางแผนอัปเดตเพิ่มเติมหลังจากเดือนกันยายน 2021 [ 107 ] การ์ด Maxwellและรุ่นใหม่กว่ารองรับ Vulkan 1.4 [ 108 ]
NVK ซึ่งเป็นไดรเวอร์ Vulkan แบบโอเพนซอร์สสำหรับ Linux ที่ใช้nouveauได้รับการประกาศในเดือนตุลาคม 2022 [ 109 ]มันถูกรวมเข้ากับMesa หลัก ในเดือนสิงหาคม 2023 [ 110 ]ปัจจุบันไดรเวอร์นี้เป็นไปตามมาตรฐาน Vulkan 1.4 บน การ์ด Turingและรุ่นใหม่กว่า[ 111 ]เป็นไปตามมาตรฐาน Vulkan 1.3 บนการ์ดMaxwell , PascalและVolta [ 112 ]และเป็นไปตามมาตรฐาน Vulkan 1.2 บนการ์ดKepler [ 113 ]
แอนดรอยด์และ GPU บนมือถือ
อุปกรณ์ Android รุ่นใหม่ส่วนใหญ่รองรับ Vulkan Android 7.0 Nougatมีตัวเลือกการรองรับ Vulkan 1.0 [ 114 ] Android 9.0 Pieมีตัวเลือกการรองรับ Vulkan 1.1 และAndroid 10คาดหวัง (แต่ไม่บังคับ) ว่าอุปกรณ์ 64 บิตที่ไม่ใช่หน่วยความจำต่ำทั้งหมดจะรองรับ Vulkan 1.1 [ 115 ] [ 116 ] [ 117 ] Android 13คาดหวังภายใต้เงื่อนไขเดียวกันว่าจะรองรับ Vulkan 1.3 [ 117 ]บนLinuxและ อุปกรณ์ ChromeOS บางรุ่น ไดรเวอร์ Mesaแบบโอเพนซอร์สให้การสนับสนุนฮาร์ดแวร์Arm Mali (Midgard และ Bifrost), Qualcomm AdrenoและBroadcom VideoCore VI [ 118 ]
แอปเปิล
ณ เดือนมิถุนายน พ.ศ. 2565 อุปกรณ์ของ Apple ยังไม่รองรับ API Vulkan โดยตรง[ 119 ]การสนับสนุน Vulkan มีให้บริการผ่านไลบรารีโอเพนซอร์สMoltenVKซึ่งมีการใช้งาน Vulkan บน API กราฟิก Metalที่มีให้ในอุปกรณ์ iOS และ macOS แม้ว่าจะมีข้อจำกัดบางประการเกี่ยวกับคุณสมบัติ API ขั้นสูงบางอย่างก็ตาม[ 33 ]
ในเดือนมิถุนายน พ.ศ. 2565 Vulkan เวอร์ชัน 1.3.217 ได้เพิ่มการรองรับวัตถุ Metal ซึ่งอำนวยความสะดวกในการนำเข้าและส่งออกระหว่าง API ทั้งสอง[ 120 ]ในเดือนธันวาคม พ.ศ. 2565 Vulkan เวอร์ชัน 1.3.236 ได้เพิ่มการแก้ไขเล็กน้อยสำหรับการทำงานร่วมกับ Apple Metal [ 121 ]
หัวเว่ย, มูลนิธิโอเพนอะตอม และมูลนิธิอีคลิปส์
ณ เดือนสิงหาคม 2023 หัวเว่ยได้ ให้การสนับสนุน Vulkan NAPI ดั้งเดิมด้วย shader SPIR-Vมาตรฐานอุตสาหกรรมตั้งแต่ HarmonyOS 4.0 API 10 และขยายไปสู่ระบบHarmonyOS NEXT แบบวนซ้ำสำหรับ HarmonyOSเวอร์ชันปัจจุบัน โดยได้รับการนำมาใช้เป็นส่วนขยายในโครงการโอเพนซอร์สOpenHarmony ของกลุ่มพันธมิตร OpenAtomพร้อมด้วยสแต็กกราฟิกที่ใหม่กว่าสำหรับระบบ รวมถึงโครงการOniroที่ใช้Eclipse Foundation และเอ็นจิ้นซอฟต์แวร์ 3 มิติ ArkGraphicsซึ่งเพิ่งเปิดเป็นโอเพนซอร์สตั้งแต่เดือนพฤษภาคม 2024 ใน OpenHarmony 5.0 beta 1 ซึ่งก่อนหน้านี้มีเฉพาะในชุดพัฒนา HarmonyOS NEXT ที่เป็นกรรมสิทธิ์เท่านั้น สำหรับคุณสมบัติไปป์ไลน์กราฟิกแบบกำหนดเอง[ 122 ]
ไมโครซอฟต์
Microsoft รองรับ Vulkan 1.2 (และสูงกว่า) บน Windows 10 และ 11 โดยมีแพ็คเกจความเข้ากันได้ให้ดาวน์โหลด[ 123 ]
ความเข้ากันได้กับเวอร์ชันเก่า
Vulkan ไม่สามารถใช้งานร่วมกับOpenGL ได้ [ 124 ] [ 23 ] [หมายเหตุ 1 ] แม้ว่าจะมีบางโครงการที่ใช้ OpenGL บน Vulkan เช่นANGLE ของ Google และZink ของMesa [ 125 ]
นอกจากนี้ Vulkan ยังไม่สามารถใช้งานร่วมกับ API กราฟิกอื่นๆ เช่นDirect3D , MetalและMantle ได้ อย่างไรก็ตาม มีการใช้งาน API เหล่านั้นบนพื้นฐานของ Vulkan อยู่:
- Direct3D มีการใช้งานหลายรูปแบบ ได้แก่DXVK สำหรับ Direct3D 8 , 9, 10 และ 11 และVKD3D-Protonสำหรับรองรับ Direct3D 12 ส่วน Direct3D เวอร์ชันเก่ากว่านั้น อาจเปิดใช้งานได้ด้วยซอฟต์แวร์อื่นๆ ที่เกี่ยวข้อง เช่นWine
- Metal มีการพัฒนาโดยผู้พัฒนาภายนอกชื่อIndiumซึ่งมีจุดประสงค์เพื่อใช้งานร่วมกับ เลเยอร์ความเข้ากันได้ ของDarling
- Mantle กำลังพัฒนาโปรแกรมเสริมจากบุคคลที่สามชื่อGRVKเพื่อรองรับเกม Mantle รุ่นเก่าๆ
API กราฟิก เฉพาะแพลตฟอร์มที่พัฒนาขึ้นบน Vulkan อาจสามารถทำงานบนแพลตฟอร์มอื่นได้เช่นกัน ตัวอย่างเช่นDXVKเป็นไลบรารีที่ใช้ร่วมกันทางเลือกซึ่งออกแบบมาเพื่อใช้งานบนLinuxโดยตรง (โดยไม่ต้องใช้เลเยอร์ความเข้ากันได้ของ Wine ) เพื่อช่วยในการพอร์ตเกม
ดูเพิ่มเติม
หมายเหตุ
- ^กระบวนการตั้งค่าไปป์ไลน์การเรนเดอร์กราฟิกไม่ได้แตกต่างจากของ OpenGL [ES] มากนัก ตัวอย่างเช่น เชเดอร์ที่เขียนด้วย GLSL ยังสามารถนำกลับมาใช้ใหม่ได้ โดยซอร์สโค้ดสามารถคอมไพล์/แปลโดยคอมไพเลอร์แบบสแตนด์อโลนให้เป็นรูปแบบไบนารีระดับกลางใหม่ที่เรียกว่า SPIR-V ซึ่งสามารถนำไปใช้งานโดย Vulkan API ได้
อ่านเพิ่มเติม
- คู่มือการเขียนโปรแกรม Vulkan: คู่มืออย่างเป็นทางการสำหรับการเรียนรู้ Vulkan (OpenGL) 10 พฤศจิกายน 2016 โดย Graham Sellers และ John Kessenich ISBN 978-0-1344-64541
- หนังสือ Learning Vulkan เดือนธันวาคม 2016 โดย Parminder Singh ISBN 978-1-78646-980-9
- บทนำสู่คอมพิวเตอร์กราฟิกและ API ของ Vulkan, 1 กรกฎาคม 2017, โดย Kenwright ISBN 978-1-5486-16175
- ตำราอาหารวัลแคน วันที่ 28 เมษายน 2017 โดย Pawel Lapinski ISBN 978-1-7864-68154
- หนังสือ "Vulkan 3D Graphics Rendering Cookbook" ตีพิมพ์เมื่อวันที่ 14 กุมภาพันธ์ 2025 โดย Sergey Kosarevsky, Alexey Medvedev และ Viktor Latypov หมายเลข ISBN 978-1803248110
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ วัลคาน
Vulkan เป็น API ข้ามแพลตฟอร์ม และ มาตรฐานเปิด สำหรับ กราฟิก 3 มิติ และ การประมวลผลแบบขนาน [ 21 ] [ 22 ] [ 23 ] มี จุดประสงค์เพื่อแก้ไขข้อบกพร่องของ OpenGL...
คุณสมบัติ
Vulkan มีจุดประสงค์เพื่อมอบข้อได้เปรียบที่หลากหลายเหนือ API อื่นๆ รวมถึงเหนือ OpenGL ซึ่งเป็นรุ่นก่อนหน้า Vulkan มีค่าใช้จ่ายในการทำงานต่ำกว่า ควบคุม GPU ได้โดยตรงมากขึ้น และใช้ CPU น้อยลง [ 26 ] แนวคิดโดยรวมและชุดคุณสมบัติคล้ายกับ Mantle ซึ่งต่อมา Microsoft...
ข้ามแพลตฟอร์ม
Vulkan สามารถใช้งานได้บนระบบปฏิบัติการและ สถาปัตยกรรม สมัยใหม่หลายประเภท และมี API เดียวสำหรับอุปกรณ์กราฟิกทั้งบนเดสก์ท็อปและมือถือ ในขณะที่ก่อนหน้านี้มีการแบ่งแยกกันระหว่าง OpenGL และ OpenGL ES ตามลำดับ เช่นเดียวกับ OpenGL และแตกต่างจาก Direct3D 12 API ของ...
ลดการใช้งาน CPU
Vulkan ลดภาระบน CPU โดยใช้ การจัดกลุ่ม และการเพิ่มประสิทธิภาพระดับต่ำอื่นๆ ซึ่งช่วยลดภาระงานของ CPU และทำให้ CPU ว่างเพื่อทำการคำนวณหรือเรนเดอร์ได้มากขึ้นกว่าที่ควรจะเป็น [ 34 ] [ 35 ]