Tại hội nghị lập trình game GDC 2015 đang diễn ra, Khronos Group - một hiệp hội phi lợi nhuận chuyên phát triển các chuẩn mở và giao diện lập trình không lệ thuộc đã vừa giới thiệu hàm API thay thế cho OpenGL có tên Vulkan, phiên bản cập nhật 2.1 của OpenCL và ngôn ngữ lập trình trung gian SPIR-V.Bên cạnh Vulkan, Khronos cũng công bố OpenCL 2.1 - một phiên bản cập nhật của hàm API mở OpenCL (Open Computing Language). OpenCL là một chuẩn mở được Khronos phát triển bao gồm một ngôn ngữ để lập trình thiết bị và giao diện lập trình ứng dụng nhằm điều khiển nền tảng và thực thi các chương trình trên máy tính. OpenCL thường được sử dụng để khai thác lợi thế của các lõi xử lý trong một GPU để tăng tốc cho các ứng dụng cần xử lý tập trung. Cả 2 Vulkan và OpenCL đều được thiết kế để sử dụng nền tảng chéo, không giống như một số API phụ thuộc vào nền tảng như DirectX cho Windows hay Metal API trên phần cứng của Apple.
Đặt nền móng cho Vulkan và OpenCL 2.1 là một phiên bản mới của SPIR (Standard Portable Intermediate Representation) - đây là một ngôn ngữ trung gian được Khronos phát triển phục vụ cho hoạt động tính toán song song và đồ họa. Phiên bản mới với tên gọi SPIR-V hỗ trợ ngôn ngữ đổ bóng (shader) trên OpenGL (GLSL), hỗ trợ xác định hiệu ứng vẽ và tương lai sẽ hỗ trợ ngôn ngữ đổ bóng C++. Việc sử dụng ngôn ngữ trung gian giúp đơn giản hóa trình điều khiển GPU bởi chúng chỉ cần sử dụng các mã SPIR-V.
Driver thí nghiệm hỗ trợ Vulkan dành cho các GPU PowerVR Rogue.
Tại sao phải nâng cấp OpenGL? OpenGL là một chuẩn đã hơn 22 năm tuổi và ban đầu được thiết kế để hỗ trợ đồ họa trên các máy trạm thay vì các nền tảng hiện đại ngày nay trong đó bao gồm chipset di động với bộ nhớ chia sẻ giữa CPU và GPU. Đối với OpenGL, trình điều khiển phải đảm đương rất nhiều tác vụ bao gồm hiệu lực hóa trạng thái, theo dõi các phần tử phụ thuộc (dependency), soát lỗi và điều này làm giới hạn và ngẫu nhiên hóa hiệu năng. Đối với Vulkan, ứng dụng sẽ trực tiếp kiểm soát hoạt động của GPU thông qua một trình điều khiển đơn giản.
Trong OpenGL, bộ biên soạn ngôn ngữ shader là một phần của trình điều khiển trong khi Vulkan sử dụng SPIR-V. Điều này cũng có nghĩa rằng lập trình viên sẽ bớt trói buộc vào mã nguồn shader. Vulkan cũng cải thiện hiệu năng lập trình đa lõi với nhiều bộ đệm lệnh (command buffer) được thực thi hơn trong lập trình song song. Khronos cho biết: "Trong cấu trúc OpenGL thông thường, việc tạo ra các bộ đệm lệnh và nạp chúng vào GPU rất khó để chia thành nhiều luồng và các ứng dụng OpenGL thường bị giới hạn CPU, GPU không thể được nạp đủ nhanh. Giờ đây, lập trình viên có thể tạo ra nhiều bộ đệm lệnh hơn với Vulkan và điều này không thể được khắc phục trên OpenGL.
Vulkan sẽ là một hàm API đơn hỗ trợ trên nhiều nền tảng từ desktop đến máy chơi game console, thiết bị di động và hệ thống nhúng. Vulkan có thể tương thích ngược với OpenGL và cấu hình thực tế của Vulkan sẽ được Khronos công bố vào cuối năm nay. Hiện tại, Vulkan đã được nhiều ông lớn hỗ trợ bao gồm Intel, Apple, ARM, Nvidia, AMD và các hãng sản xuất chipset như Qualcomm, Imagination và Mediatek. Ngoài ra, Khronos cũng chủ động hợp tác với các đối tác phát triển game engine như Epic, Valve, Unity và Blizzard để họ có thể khai thác sức mạnh của Vulkan.
Theo: The Register