recientemente Khronos宣布发布Vulkan 1.2规范的新版本, 被定义为 用于访问GPU的图形和计算功能的API。 两年来累积的更正和扩展已被纳入新规范中。
火山 以大大简化驱动程序而著称,将GPU命令生成带到应用程序端,可以连接调试层, 统一多个平台的API 并使用预编译的中间代码表示形式在GPU端执行。
Vulkan 1.2的主要新功能
突出的是HLSL着色器编程语言的实现 由Microsoft为DirectX开发 准备通用 (Vulkan中对HLSL的支持使得在基于Vulkan和DirectX的应用程序中仅可以使用HLSL着色器,并且还简化了从HLSL到SPIR-V的转换。)
建议使用标准DXC编译器来编译着色器, 它由Microsoft在2017年开放,基于LLVM技术。 Vulkan支持通过单独的后端实现,这允许将HLSL转换为SPIR-V着色器的中间表示。
该实现不仅涵盖HLSL的所有内置功能,包括数学类型,控制流,函数,集合,资源类型,名称空间,Shader Model 6.2,结构和方法,而且还允许使用Vulkan的特定扩展,例如来自NVRIA的VKRay。
在HLSL模式下 在Vulkan之上 可以组织《命运2》,《荒野大镖客:救赎XNUMX》,《刺客信条:奥德赛》和《古墓丽影》等游戏。
进一步 请注意,SPIR-V 1.5规范已更新, 它定义了所有平台的着色器的通用中间表示形式,可用于图形和并行计算。
Vulkan核心API包括23个扩展以提高生产力,提高显示质量并简化开发。
从他们中我们可以找到 时间轴信号量: 统一了与主机和设备队列的同步(无需使用单独的VkFence和VkSemaphore原语,即可与用于设备和主机之间的全方向同步的原语一起使用)。
这些由单调递增的64位值表示,该值可以通过多个线程进行跟踪和更新。
已为典型的目标平台准备了较短版本的规范,从而简化了尚不支持所有扩展的平台上的工作,并允许选择性激活Vulkan API的核心功能。
其他变化 脱颖而出:
- 继续使用其他图形API进行可移植性项目。
- 能够以较低的精度在着色器中使用数字类型
- 符合HLSL的内存布局选项
- 未绑定(未绑定)资源通过使用系统内存和GPU内存的共享虚拟空间来消除可用于着色器的资源量的限制
- 正式的内存模型,定义并行线程如何访问共享数据和同步操作
- 索引描述符以在多个着色器之间重用设计描述符;
- 缓冲区绑定。
- 已添加扩展的完整列表
- 添加了50多个新结构和13个功能
在未来的计划中,最后的一项是在机器学习,光线跟踪,视频编码和解码,对VRS(变速阴影)和网格着色器的支持方面的扩展开发。
英特尔,AMD,ARM,Imagination Technologies和NVIDIA已经发布了驱动程序 支持新版本的Vulkan。
虽然的情况 台面 (免费司机),se 为RADV驱动程序提供Vulkan 1.2支持 (AMD卡)和ANV驱动程序(英特尔)。 在RenderDoc 1.2调试器,LunarG Vulkan SDK和一组Vulkan-Samples中,也实现了对Vulkan 1.6的支持。