AMD已开放V-EZ的源代码,V-EZ是一种跨平台的低层Shell Vulkan API

Vulkan API是低级跨平台软件接口,由于与其他API(例如OpenGL)相比,成本较低,因此具有更高的3D图形性能,尤其是具有特殊的GPU功能(该API也适用于2D渲染)。 通过适当的实施,Vulkan可提供“与相同设备上的其他API相比,从边际到多项式的速度增加”。

Khronos Group的开发人员在GDC 2015大会上介绍了Vulkan API,第一版于2016年2月发布。 最初,Vulkan API被称为“下一代OpenGL”或简称为glNext,但随后将名称更改为Vulkan。

许多人热切地等待着这项革命性技术的发布,该技术可以极大地加速3D图形并减少处理器上的负载,例如Direct3D 12,Metal和Mantle。 但是问题在于,Vulkan API需要开发人员进行更多工作,而诸如OpenGL和DirectX 11之类的高级API可以简化许多事情,例如内存管理。 为了帮助与Vulkan一起使用,AMD开发了包装和抽象层V-EZ,并已根据免费的MIT许可证( GitHub存储库 )发布了该工具的源代码。

最初,V-EZ于2018年3月发布,但不公开消息来源,现已取消了此限制。


Vulkan API

V-EZ是中间级别(中间件),在开发过程中承担许多辅助功能,因此开发人员不需要立即知道并手动处理Vulkan的所有复杂问题,V-EZ会自己做很多事情。 辅助外壳使用与Vulkan API相同的语义,也就是说,它可以用作一种培训工具。 从V-EZ开始,开发人员可以逐渐适应它-最终直接使用Vulkan。 这也意味着在许多情况下Vulkan文档都适用于V-EZ。

Vulkan与上一代API相比的优势:

  • Vulkan API非常适合高端图形卡和移动设备上的图形设备。
  • 与Direct3D 12不同,Vulkan可在许多现代操作系统中使用,而不受任何操作系统或外形的限制。 从一开始,Vulkan API就可以在Android,Linux,Tizen,Windows 7,Windows 8和Windows 10上运行,并且对iOS和macOS具有第三方支持。
  • 减少了驱动程序开销,减少了CPU负载。
  • 通过使用批处理减少CPU的负载。
  • 更好地扩展多核处理器。
  • OpenGL使用高级语言GLSL编写着色器,这迫使每个OpenGL驱动程序实现自己的GLSL编译器,该编译器在运行时运行以将程序着色器转换为GPU机器代码。 相反,Vulkan驱动程序应接受已经转换为SPIR-V中间二进制格式的着色器,类似于将HLSL着色器编译成Direct3D的二进制格式。
  • 由于着色器的初步编译,提高了应用程序的初始化速度,并且对于每个场景,您可以使用更多数量的着色器。 驱动程序仅需要某些GPU优化和代码生成,从而简化了驱动程序维护并减小了其大小。
  • 对计算核心和图形着色器的统一管理,无需将单独的计算API与图形API结合使用。



中间层V-EZ

尽管Vulkan API的创建者是Khronos Group,但该技术基于AMD捐赠给Khronos Group的Mantle API。 这个想法是要创建一种不受特定制造商约束的更先进的技术,以便可以将其用作像OpenGL这样的公认的行业标准。 因此,AMD现在正在帮助改进Vulkan API,并正在创建支持工具,例如V-EZ。

V-EZ的安装要求


  • 64位Windows 7、8.1、10
  • 64位Linux(在Fedora和Ubuntu上测试)
  • Visual Studio 2015或更高版本
  • GCC 4.9或更高版本
  • CMake 3.8或更高版本
  • LunarG Vulkan SDK 1.1.70

V-EZ不受特定供应商的约束,应在非AMD设备上工作。

V-EZ的创建者希望以免费许可的形式发布源代码将有助于V-EZ Shell的流行,并因此促进新的低级编程接口的流行。 反过来,这将帮助开发人员采用新的API,从而带来更好的游戏性能和更多的跨平台游戏。

Vulkan目前受到许多游戏引擎的支持,包括Source 2,Serious Engine 4,Unreal Engine 4,Torque 3D,id Tech 3,id Tech 4,id Tech 6,Xenko,Unity,CryEngine,Intrinsic,Unigine,Abyss Engine ,女妖3D和Godot。

Source: https://habr.com/ru/post/zh-CN421361/


All Articles