Khronos เปิดตัว Vulkan มาตรฐานกราฟิกยุคใหม่ที่จะมาแทน OpenGL

by mk
4 March 2015 - 13:09

กลุ่ม Khronos ผู้ดูแลมาตรฐานกราฟิก OpenGL เปิดตัวมาตรฐานกราฟิกยุคใหม่ Vulkan ที่ถูกออกแบบใหม่หมดเพื่อใช้แทน OpenGL ที่เริ่มล้าสมัยแล้ว

นับถึงวันนี้ OpenGL มีอายุได้ 22 ปี เริ่มไม่สามารถตอบสนองต่อความต้องการของแอพพลิเคชันยุคใหม่ๆ ที่ต้องการรีดประสิทธิภาพของฮาร์ดแวร์ให้มากขึ้น ดังจะเห็นได้จาก API กราฟิกรุ่นใหม่ๆ อย่าง AMD Mantle, Apple Metal, DirectX 12 ที่เปิดให้แอพพลิเคชันลงไปจัดการฮาร์ดแวร์ระดับล่างได้มากขึ้น

ปีที่แล้ว Khronos เริ่มร่างมาตรฐาน OpenGL ยุคใหม่โดยใช้รหัสว่า GLNext (หรือชื่อเต็มๆ Next Generation OpenGL Initiative) และวันนี้ที่งาน GDC 2015 มันก็เปิดตัวอย่างเป็นทางการในชื่อ Vulkan

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

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

ตารางด้านล่างเป็นการเปรียบเทียบความแตกต่างของ OpenGL กับ Vulkan

สถาปัตยกรรมของ Vulkan ต่างไปจาก OpenGL มาก โดย Vulkan ถูกออกแบบให้เบากว่า OpenGL เยอะ ทำหน้าที่เป็นตัวกลางในการสื่อสารและควบคุม GPU เท่านั้น งานหลายอย่างไม่จำเป็นต้องโหลดถ้าไม่ใช้งาน และมอบอำนาจเข้าถึงฮาร์ดแวร์ระดับล่างให้แอพพลิเคชันเป็นฝ่ายสั่งการแทน

อีกประเด็นที่น่าสนใจคือ Vulkan ตั้งเป้าเป็น API เดียวสำหรับอุปกรณ์ทุกประเภท ดังนั้นจะไม่มีการแยกรุ่นแบบ OpenGL (พีซี) กับ OpenGL ES (อุปกรณ์พกพา) อีกแล้ว

ถึงแม้จะมี API ตัวอื่นๆ พยายามแก้ปัญหาของ OpenGL แต่ API เหล่านี้ก็มีข้อจำกัดของตัวเอง

  • Mantle รองรับแค่ GPU ค่าย AMD
  • DirectX 12 รองรับแค่ระบบปฏิบัติการฝั่งไมโครซอฟท์
  • Metal ยิ่งแล้วใหญ่คือใช้ได้เฉพาะ GPU ของแอปเปิลบน iOS เท่านั้น

แต่ Vulkan ตั้งเป้าเป็นมาตรฐานกลางของวงการ ที่ GPU/OS ใดๆ สามารถใช้งานได้ทั้งหมด (ไมโครซอฟท์เองก็สมัครเข้าเป็นสมาชิก Khronos แล้ว)

ข้อจำกัดอีกอย่างของ OpenGL คือบังคับว่าไดรเวอร์ของฮาร์ดแวร์ต้องเขียนด้วยภาษา shader ที่เรียกว่า GLSL ทำให้กระบวนการพัฒนายุ่งยาก

แนวคิดของ Vulkan นำแนวทางมาจาก Mantle (ที่ AMD ยินดียกให้ใช้งาน) และ OpenCL ซึ่งเป็น API สำหรับนำ GPU มาประมวลผลงานที่ไม่ใช่กราฟิก

แนวทางของ OpenCL คือใช้การคอมไพล์ 2 ครั้งแบบ Java/.NET โดยเขียนไดรเวอร์ในภาษาอะไรก็ได้ แล้วแปลงเป็นภาษาขั้นกลาง (intermediate language) ที่เรียกว่า SPIR เพื่อให้รันไทม์ของ OpenCL แปลงเป็นภาษาเครื่องของฮาร์ดแวร์แต่ละรุ่นอีกทีหนึ่ง

Vulkan สืบทอดแนวคิดนี้มาใช้ โดย Khronos จะพัฒนาภาษา SPIR เป็นรุ่นใหม่ที่เรียกว่า SPIR-V แทน ผลคือ GLSL ยังเป็นภาษาหลักของ Vulkan อยู่เช่นเดิม แต่ด้วยสถาปัตยกรรมที่เปิดกว้างมากขึ้น ทำให้เราจะได้เห็น Vulkan รองรับภาษาใหม่ๆ (เช่น C++ ตามในภาพ) เพิ่มเข้ามาในอนาคต

ตอนนี้กระบวนการร่างมาตรฐาน Vulkan ยังอยู่ในช่วงเริ่มต้น โดย Khronos กำลังรวบรวมข้อเสนอของสมาชิก และเคลียร์เรื่องเงื่อนไขด้านสิทธิบัตร-ทรัพย์สินทางปัญญา คาดว่าเราจะได้เห็นร่างของ Vulkan ออกมาเปิดรับความคิดเห็นจากภาคส่วนต่างๆ ภายในปีนี้

ในแง่ของสเปกฮาร์ดแวร์ Khronos บอกว่าอะไรก็ตามที่รัน OpenGL ES 3.1 ได้ จะใช้งานกับ Vulkan ได้อย่างแน่นอน ส่วนกลุ่มบริษัทที่ร่วมสนับสนุน Vulkan ก็ตามโลโก้ด้านล่างครับ

ที่มา - Khronos, AnandTech, Ars Technica

Blognone Jobs Premium