DirectX 12支援开源SPIR-V著色器,进入跨平台绘图API新时代

微软宣布从著色器程式开发标准Shader Model 7开始,逐步以SPIR-V取代DXIL,而这代表著DirectX 12后将走向开放标准的道路。微软和Khronos、Google等组织合作,计划透过这项改变推动GPU程式设计创新,同时加速新硬体功能的普及,进一步提升开发者的生产力。该政策将分数年逐步实现,确保开发生态系的平稳过渡。

过去Direct3D使用的是以LLVM为基础的DXIL格式,支援各种著色器功能,诸如光线追踪和工作图(Work Graph)等,而现在微软决定新增采用SPIR-V开放标准。SPIR-V是一个由Khronos所开发的二进位中介表示格式,用来编译和执行GPU上著色器和计算程式,其支援诸如Vulkan和OpenCL等多种绘图API。

SPIR-V具备良好的可扩展性,同时也支援新的硬体和技术,已是现代GPU程式广泛使用的标准。微软透过让Direct3D支援该开放标准,统一著色器的中介格式,这将让开发者可以更轻松地利用现有工具和技术,进行跨平台GPU程式开发。

微软计划推出专属SPIR-V环境,来支援Direct3D现有与未来的著色器程式开发。新功能会透过SPIR-V扩充实现,确保开发者在技术过渡阶段,仍然可以使用Direct3D原本所提供的灵活性和功能。同时,微软也将提供工具,让SPIR-V和DXIL两种格式能够双向转换,借由渐进式过渡政策,确保开发者能够平稳适应新格式,并且逐步更新工具和驱动程式。

对于使用AgilitySDK开发Direct3D应用程式的开发者,这项转换不会带来太多工作流程改变,不过官方指出,开发用来编辑和操作编译后著色器的工具开发者,就可能会因为技术转换,而需要对工具进行变更和调整。

由于SPIR-V核心设计具有良好的可扩展性,因此可以更好地支援GPU API新功能,透过统一标准中介格式,开发者无论是在Direct3D还是其他绘图API,都能够更快地采用新功能。而对硬体供应商和微软本身来说,也可以将资源投入在差异化功能开发,而不需要重新建构受广泛支援的基础功能。

这项政策的实施将持续数年,微软希望及早公开相关资讯,使开发者和其合作伙伴有时间准备,以顺利应对接下来的技术转换工作。