NVIDIA đã hỗ trợ Vulkan API
Thật sự với phiên bản driver 358.66 Beta nầy cho chúng tôi quá nhiều bất ngờ, đầu tiên là việc NVIDIA đã hỗ trợ Vulkan API của Khronos cũng như OpenCL đã hỗ trợ cho GPU Pascal và Volta. Nên nhớ rằng Vulkan là dựa trên Mantle của AMD và nó đang âm mưu chiếm vị trí của DirectX 12. Quay trở lại 1 tí, chúng tôi biết rằng thật sự NVIDIA đang rất khó khăn trong việc chuẩn bị giới thiệu GPU Pascal và Volta vào năm 2016 và 2017 tới đây.
Phân tích OpenCL trong driver nầy, chúng tôi thấy có vài hàm mới:
++ -D__CUDA_ARCH__=700
++ -D__CUDA_ARCH__=600
++ -D__CUDA_ARCH__=610
++ -D__CUDA_ARCH__=620
++ -D__CUDA_ARCH__=500
++ -D__CUDA_ARCH__=300
++ -D__CUDA_ARCH__=210
++ -D__CUDA_ARCH__=200/100
500 là Maxwell, 700 chính là GPU Volta còn 6xx chính là Pascal. 300 chính là Kepler, 210 là Fermi còn 200/100 lại là Tesla.
Phân tích tiếp OpenCL thấy có chứa các thành phần mở rộng và chức năng sau:
++ VK_EXT_KHR_device_swapchain
++ VK_EXT_KHR_swapchain
++ vkCreateInstance
++ vkEnumerateInstanceExtensionProperties
++ vkGetDeviceProcAddr
++ vkGetInstanceProcAddr
++ vkGetProcAddressNV
Trong driver nầy có thêm file nv-vk32.dll mà có các chức năng sau:
++ vkAcquireNextImageKHR
++ vkCreateDevice
++ vkCreateSwapchainKHR
++ vkDestroySwapchainKHR
++ vkEnumerateDeviceExtensionProperties
++ vkGetDeviceProcAddr
++ vkGetPhysicalDeviceSurfaceSupportKHR
++ vkGetSurfaceFormatsKHR
++ vkGetSurfacePresentModesKHR
++ vkGetSurfacePropertiesKHR
++ vkGetSwapchainImagesKHR
++ vkQueuePresentKHR
++ vkCreateInstance
++ vkEnumerateInstanceExtensionProperties
++ vkGetPhysicalDeviceMemoryProperties
++ vkGetInstanceProcAddr
++ vkEnumeratePhysicalDevices
++ vkCreateImage
++ vkDestroyImage
++ vkAllocMemory
++ vkFreeMemory
++ vkBindImageMemory
++ vkGetImageMemoryRequirements
++ vkQueuePresentNV
Nhìn thì thấy rõ: vk là Vulkan chứ là gì nữa. Thôi kết thúc bài vì viết thêm bắt đầu khó dịch và khó hiểu rồi