Tản mạn về Vulkan
This post hasn't been updated for 3 years
Giới thiệu
Chắc hẳn mọi người đều biết DirectX là thư viện phát triển multimedia và đặc biệt là game trên nền tảng Windows. Với sự ra đời của Windows 10 cùng với DirectX 12. DX 12 mang lại hiệu suất cao hơn (fps) so với những nền tảng trước ở cùng cấu hình. Còn Vulkan được phát triển bởi Khronos Group, cũng hứa hẹn sẽ mang lại hiệu suất tốt nhất và giảm thiểu tối đa hiện tưởng bottleneck CPU. Có thể coi Vulkan là hậu duệ của OpenGL, API đồ hoạ ra đời trước cả DirectX. Năm 2013, AMD đã xây dựng thự viện đồ hoạ API mạng tên Mantle nhưng nó dã bị chết yểu vì chỉ cho phép chạy trên dòng card ATI Radeon. Tuy nhiên toàn bộ mã nguồn của Mantle được tích hợp vào Vulkan. Đến năm 2015 tại GDC, Vulkan lần đầu được công bố bởi Khronos Group là một nhóm những công ty thành viên máu mặt như AMD, NVIDIA, Intel, Sony, Google ...
Tại sao lại là Vulkan
Về mặt hiệu năng Vulkan hoàn toàn ngang bằng DirectX 12. Điều này không chỉ đúng về thông số mà chính những công nghệ DirectX 12 sử dụng hầu như đều có trên Vulkan. Với DX 11 hầu như những tác vụ chính chỉ chạy trên 1 core, còn với DX 12 hay Vulkan mọi tác vụ đều được phân chia đều trên các core. Vulkan còn cho phép can thiệp trực tiếp vào GPU cũng như cách hoạt động của CPU. Từ phiên bản Vulkan 1.0 Vulkan cũng đã tích hợp cả Nvidia Driver.
Dưới đây là bảng so sánh hiệu năng giữa Vulkan, DirectX 11 và OpenGL
Ở biểu đồ trên thì hiệu năng vẫn chưa thể bằng DX11 nhưng đã vượt trôi hơn với người tiền nhiệm OpenGL. Bảng so sánh này được thực hiện cách đây khoảng 1 năm, có thể ở thời điểm hiện tại thì hiệu năng đã được cái thiện khá nhiều. Hiện tại Vulkan vẫn chưa hỗ trợ SLI/Crossfire.
Điểm khác biệt lớn nhất giữa 2 bộ API là DirectX chỉ cho phép chạy trên Windows 10 còn Vulkan có thể chạy trên mọi nền tảng (Windows, OSX, Linux/SteamOS and mobile/embedded devices). Ngoài ra Vulkan cũng đang được xử lý đẻ tích hợp vào các game engine phổ biến hiện nay như Unreal, Crytek, Unity và Source.
Điểm cộng nữa là Vulkan còn hộ trợ tốt những dòng card cũ hơn. Cụ thể với NVIDA Vulkan hỗ trựo các card từ GTX 600 đến GTX 10. Đối với AMD Vulkan sẽ hỗ trợ từ ATI Radeon 7700 đến ATI Radeon R9. Như vậy với những dòng card tầm trung Vulkan đem lại hiệu suất vượt trội hơn rất nhiều DirectX.
Tương lai của Vulkan
Hiện tại Vulkan đã ra mặt bộ SDK của mình cho nền tảng Windows, Linux và Android.
https://www.khronos.org/vulkan/
https://github.com/KhronosGroup
Với iOS và OSX https://moltengl.com/
Ngoài ra có thông tin là Valve đang định đừa Vulkan vào thay thế cho DirectX trên nền tảng SteamOS. Sony cũng đang có những tin đồn tích hợp Vulkan vào hệ thống Playstation 4k.
Như vậy có thể thấy tương lai của Vulkan khá hứa hẹn.
Ngoài lề
Gần đây, Vulkan đã chứng tỏ được bản lĩnh của mình trên Dota 2.
Để trải nghiệm vulkan trên dota 2 bạn có thể làm như sau: Library > Dota 2 > DLC > Install Dota2 - Vulkan support, sau đó vào dota 2 properties > Set Launch Options > add -vconsole -vulkan Với Winows 7, 8, 8.1, Linux nếu dùng Vulkan sẽ cải thiện fps đáng kể.
Hiện tại apple vẫn chưa support chính thức cho Vulkan. Vulkan nhàm mục đích thay thế các API OpenGL, còn Metal (apple) cũng nhăm mục đích thay thế các api của OpenGL bằng các API ở tầng trên mà không cần phải can thiệp vào cấu hình của máy. Như vây về cơ bản thì chức năng của 2 thư viện là như nhau. Có thể Metal và Vukan sẽ tồn tại song song trên OSX. Ngoài ra theo mình biết thì Apple cũng dự định sẽ thay thế những dòng card Nvidia bằng dòng card AMD để hỗ trợ tố hơn cho Vulkan.
All Rights Reserved