讲解

x Directx 12与Vulkan:争夺最佳图形引擎?

目录:

Anonim

当前,在PC世界中,有两个一流的图形API通过权限管理市场。 因此,我们为您带来DirectX 12与Vulkan的比较。

两者背后都有悠久的历史,并有一大群捍卫者和批评者。 今天,我们将看到差异,每个差异的关键,我们将尝试为它们提供一些启示。

内容索引

低级图形API和“驱动程序开销”

API代表“应用程序编程接口”,并且是开发人员可以使用的一组子例程,还包括促进软件开发的通信协议和实用程序。 我们几乎可以找到它们的所有内容,对于每个服务提供商而言,通常都有这种帮助以一种简单易用的方式实现其系统。

低级API可以更好地利用GPU的资源,从而减轻CPU的负担,但也可以更好地利用我们今天拥有的多核处理器。

DirectX 12Vulkan 1.1都是面向需要现代图形引擎协助的游戏和应用程序开发的API。 同时,它们是最重要的图形芯片组设计器的驱动程序支持的API,因此可以快速而经济地访问其功能,而不必了解其底层设计。

诸如此类的低级API允许使用非常轻便的解释层来处理硬件,这使开发人员可以更好地利用硬件,从而在性能和效率方面获得更好的结果,还可以使其他子系统摆脱额外的负担。 在PC或移动电话的世界中,它较少依赖于系统的通用CPU。

我们今天将要讨论的两个API可以被视为低级API,这两种发展都导致对系统CPU的依赖性越来越小,同时在性能级别上获得了更好的结果并可以访问更多图形功能。先进的。 它们是两个实时API,每年都会接收更新,以使其与公众和开发人员的期望保持一致。

低级API对另一个我们称为“驱动程序开销”的计算概念有直接影响,简而言之,即我们在计算机上执行某些类型的操作所需的辅助资源。 对于图形,它指的是图形卡完成其工作所需的额外资源,在这种情况下,它基本上是中央CPU处理时间。 我们将在这里描述的低级API减少了这种依赖关系,实际上这种依赖关系趋向于0。

Microsoft DirectX

DirectX成为标准化不同Windows多媒体子系统的必要条件,并且替代了Windows 3.1的WinG。 它在Windows 95中作为附加软件包使用,其第二个版本DirectX 2.0成为Windows 95 OSR2的基本组件。

在DirectX中,我们找到了多个独立的API,例如Direct3D ,这确实是有问题的DirectDraw,DirectMusic,DirectPlay和DirectSound。 DirectX是命名所有这些子API的共同进步的一种方法。 它是Windows的API,但也用于Xbox控制台上的游戏开发,因此我们可以将其视为多平台API,但并非免费的,就像Vulkan一样。

DirectX 12是其最新版本,自2014年以来一直在我们身边,并且一直没有停滞不前,几个月前还进行了重要的改进,例如Windows 10的1809年10月更新版本中包含的Direct Ray Tracing(DXR)子例程。

诸如DirectX 12之类的低级API具有一个基本优势,即减少了驱动程序开销。 程序员现在有权设计GPU在其程序中的行为方式,并可以更好地管理GPU资源,特别是通过利用进程并行化。 这包括更好地支持一个系统中的多个GPU,即使它们不是来自同一制造商。

它们可以利用兼容图形的功能执行不同类型的操作,通常是“整数”或“浮点数”,并且还可以通过在较大总线上并行处理复杂的操作,将复杂的操作分为简单的操作。 一个很好的例子是AMD或Nvidia现在如何在其32位总线上处理16位操作,从而大大提高了其图形效率。

该API使控制台GPU的使用效率更加接近,开发人员完全了解可用的硬件,而异构生态系统则构成了具有无限不同硬件可能性的PC。

目前,令人惊讶的是,DirectX 12可用于Windows 7和Windows 10,尽管它不直接与Xbox One兼容,但事实是,实际上90%的功能都用于PC,差异很小,并且允许开发人员可以快速修改Xbox One的PC游戏,反之亦然。

赫罗诺斯的Vulkan

VulkanOpenGL低级API的演进,并由Khronos Corporation支持。 在PC世界中,它们在DirectX 12上具有次要角色,但是其对不同平台(如Android)的不同适应使它成为移动图形的基准。 它还与Linux兼容,成为免费系统中游戏的绝佳替代品。

它的优点是并行处理能力强,在现代CPU和GPU中非常高效,对前者的使用率较低,而对后者的硬件的使用率很高。 它经过专门设计,可以利用多核处理器在此类处理器中实现出色的负载分配,实际上,对于我们可以提供的更多内核,它的效率要高得多。

Vulkan的历史可以追溯到DirectX 12和非盈利性公司Khronos维护它的频率比Microsoft使用自己的API频率更高或更频繁的一年。 它基于AMD为其GCN架构开发的API Mantle ,并且是用于减少“开销驱动程序”的另一个低级API。 AMD将其开发成果捐赠给了Khronos,这是市场上最好的图形API之一的基础。

除了出色的并行化功能外,该设计还可以消除对GPU上的阴影操作的预编译,除了可以更详细地调整硬件处理操作或访问方式之外,还可以以更高的加载速度在屏幕上产生更多效果。帧缓冲区可用。 当然,PC的API最接近硬件本身,甚至比DirectX 12更好。

Vulkan还在Android和其他平台上引入了底层API改进。

在2018年底推出的最新版本Vulkan 1.1增加了重要的改进,例如HLSL支持,这是DirectX 12的替代选择,无需预先编译即可管理着色器操作,并与DirectX 12更好地兼容(对其许多子例程而言)除了图形之外),无论制造商如何,都明确支持Multi-GPU系统,当然也支持RayTracing。

DirectX 12与Vulkan的优缺点

除了已经描述的通用功能,例如更好地使用硬件,更好地控制硬件以及更好地使用GPU和CPU的并行化功能外,这两个API还增加了使用图形芯片执行常规计算操作的可能性。兼容的。 这使兼容的图形引擎(已经好几代了)能够执行复杂的数学运算,可以被各种程序利用,包括那些没有图形组件的程序。

在游戏中,它们还可以用于越来越重要的辅助操作,例如现实物理的计算,人工智能,位置声音效果等。

两种API都受到大量图形技术的大力支持,AMD和Nvidia都努力为这些API提供适当的驱动程序,以实现为用户提供最新的改进,并增强使用其中一种的游戏的性能和稳定性。或其他API。

实际上,两者的“驱动程序开销”都很低,正如您将在我们的测试中看到的那样,它们之间几乎没有任何差异,这也标志着两家制造商的驱动程序都进行了重要的优化。

对于驱动程序开销的演示,我们将帧速率限制为120FPS。 在Dota 2中,使用相同的FPS可以大大减少CPU消耗。

唯一更明显的区别是Vulkan对CPU的依赖程度有所降低,平均消耗较低,并且对不同平台(包括Windows和Linux以及与OpenGL ES(移动版本)的同质化)的开放程度也更高,它正在进一步统一其移动平台。

DirectX 12得到开发人员的广泛认可,他们似乎在此API中找到了一个理想的生态系统来降低成本,因为它甚至与.NET Framework一样广泛地集成了框架,其中集成了上千个奇迹几乎没有性能损失。

双API游戏的性能差异

通过步行来演示运动,我们已经在不同的游戏和基准测试中进行了一些性能测试,这些测试可以使用这两个API来执行。

3DMark驱动程序开销测试。 产生数百万个请求,更好。

灰烬的奇点。 以FPS计算的结果越多越好。

怪旅 以FPS计算的结果越多越好。

我们总结了您应该感兴趣的最佳硬件指南:

  • 市场上最好的处理器市场上 最好的主板市场上 最好的RAM存储器市场上 最好的显卡市场上 最好的SSD SSD 更好的机箱或PC机箱 更好的电源 更好的散热器和液体冷却器

如您所见,结果是偶数的,并且我们看到了程序之间相互支持和反对的差异。 这给我们留下了一个更好的问题,答案很明确,它取决于程序以及开发人员如何知道或想要利用其好处。 剩下的就是认为,在每个游戏中,开发人员都将精确地使用最能利用我们图形优势的API,尽管很明显,这两种选择似乎都胜任不了。 您如何看待我们关于Directx 12 vs Vulkan的文章? 我们想知道您的意见!

讲解

编辑的选择

Back to top button