Vulkan 作为新的标准图形显示 API 已经发布已久,Windows 和 Linux 上早已由各主流显卡厂商所适配,唯独 macOS 上苹果对 Vulkan 反应迟钝,距 Vulkan 1.0 标准正式发布已经过去了近两年,macOS 仍旧没有提供 Vulkan 的支持。当然苹果没提供官方层面的支持并不代表在 macOS 上就不能开发和“运行”使用 Vulkan API 开发的程序了,MoltenVK 项目提供了一个使用 Metal API 实现的 Vulkan API 兼容的框架,并且提供了一个 GLSL、SPIR-V 与 MSL 三种着色器程序代码离线状态相互转换的工具,这使得在 macOS 上开发 Vulkan 程序成为了可能。
运行环境macOS 10.11 El Capitan 或更新
iOS 9 或更新,仅支持 64 位设备,暂不支持模拟器运行
开发环境macOS 10.12 Sierra 或更新
Xcode 9 或更新
环境搭建
在 MoltenVK 官方网站(https://moltengl.com/moltenvk/)上点击 Free Trial(免费试用)便可下载得到专用 SDK。
为了确保代码的可移植性,我们用 GLFW(http://www.glfw.org)与操作系统交互,不过需要注意的是,最新的稳定版并不支持 MoltenVK,git 中的版本(https://github.com/glfw/glfw)则可以做到这一点。
GLFW 官网不提供 macOS 二进制下载,需要自行下载代码编译。编译仅需依赖 CMake,利用第三方包管理或者从 CMake 官网(https://cmake.org)下载皆可。
在终端中进入到 GLFW 的目录,在其中执行mkdir build