Opengl mantle、dx和ogl上的性能

Opengl mantle、dx和ogl上的性能,opengl,graphics,3d,directx,mantle,Opengl,Graphics,3d,Directx,Mantle,所以最近,新的3d图形API引起了轩然大波,据说它会极大地加快图形的速度,我想知道为什么以前没有这样做过。旧的方式和新的方式有什么不同 我想知道它是如何实现的,甚至可能是它如何从gpu到驱动程序再到DX或OGL的API的概述。关于它如何从gpu到驱动程序再到API的概述,你可以从这个开始。关于它如何从gpu到驱动程序再到API的概述,您可以从这一点开始发生的主要事情是GPU本身已经变得相当标准化,即使是在不同的供应商之间。DirectX和OpenGL一直以来都在努力隐藏不同供应商的GPU设计之间

所以最近,新的3d图形API引起了轩然大波,据说它会极大地加快图形的速度,我想知道为什么以前没有这样做过。旧的方式和新的方式有什么不同


我想知道它是如何实现的,甚至可能是它如何从gpu到驱动程序再到DX或OGL的API的概述。

关于它如何从gpu到驱动程序再到API的概述,你可以从这个开始。

关于它如何从gpu到驱动程序再到API的概述,您可以从这一点开始

发生的主要事情是GPU本身已经变得相当标准化,即使是在不同的供应商之间。DirectX和OpenGL一直以来都在努力隐藏不同供应商的GPU设计之间的差异,其中许多GPU在过去具有非常独特的硬件体系结构——OpenGL一直是一个“泄漏”得多的抽象,有无数供应商特定的扩展

DirectX 12和Mantle都比过去公开了更多GPU的底层行为,因此运行时库比底层驱动程序更精简。这种方法不可能适用于所有视频卡,尤其是传统DirectX和OpenGL可以支持的许多较旧的视频卡,因为OpenGL在几十年前就已经有了巨大的传统支持。推动DirectX 10和DirectX 11的GPU功能标准化,使得来自不同厂商的消费级PC图形硬件从DirectX的早期起就不再那么古怪了

要记住的另一件事是,这种权衡还需要更多的应用程序/游戏本身来正确处理CPU/GPU同步,有效地驱动硬件,跟踪并详尽地描述它们使用的状态组合,并且通常在没有运行时的安全和支持的情况下运行

编写DirectX 12应用程序需要比今天的DirectX 11或OpenGL更多的图形编程技能。在Direct3D 9中设置设备/交换链和简单渲染场景可能需要几十行代码,在Direct3D 11中需要几百行,但在DirectX 12中需要更多,因为应用程序本身必须执行过去在运行时“通过魔法”完成的所有单独步骤。这可以让应用程序/游戏调整确切的顺序,也许可以跳过它们实际上不需要的步骤,但这取决于它们,而不是运行时

引用一句话,强大的力量带来巨大的责任


多年来,开发人员一直坚持希望在PC机上安装一个“类似于控制台”的API,所以现在他们将了解到底他们是否真的想要它。对于游戏引擎编写者、拥有自定义引擎的AAA游戏以及技术演示场景来说,几乎可以直接控制硬件真是太酷了。对于普通人来说,长时间使用DirectX 11或使用已经实现DirectX 12的引擎会容易得多。

发生的主要事情是,GPU本身已经变得相当标准化,即使在不同的供应商中也是如此。DirectX和OpenGL一直以来都在努力隐藏不同供应商的GPU设计之间的差异,其中许多GPU在过去具有非常独特的硬件体系结构——OpenGL一直是一个“泄漏”得多的抽象,有无数供应商特定的扩展

DirectX 12和Mantle都比过去公开了更多GPU的底层行为,因此运行时库比底层驱动程序更精简。这种方法不可能适用于所有视频卡,尤其是传统DirectX和OpenGL可以支持的许多较旧的视频卡,因为OpenGL在几十年前就已经有了巨大的传统支持。推动DirectX 10和DirectX 11的GPU功能标准化,使得来自不同厂商的消费级PC图形硬件从DirectX的早期起就不再那么古怪了

要记住的另一件事是,这种权衡还需要更多的应用程序/游戏本身来正确处理CPU/GPU同步,有效地驱动硬件,跟踪并详尽地描述它们使用的状态组合,并且通常在没有运行时的安全和支持的情况下运行

编写DirectX 12应用程序需要比今天的DirectX 11或OpenGL更多的图形编程技能。在Direct3D 9中设置设备/交换链和简单渲染场景可能需要几十行代码,在Direct3D 11中需要几百行,但在DirectX 12中需要更多,因为应用程序本身必须执行过去在运行时“通过魔法”完成的所有单独步骤。这可以让应用程序/游戏调整确切的顺序,也许可以跳过它们实际上不需要的步骤,但这取决于它们,而不是运行时

引用一句话,强大的力量带来巨大的责任


多年来,开发人员一直坚持希望在PC机上安装一个“类似于控制台”的API,所以现在他们将了解到底他们是否真的想要它。对于游戏引擎编写者、拥有自定义引擎的AAA游戏以及技术演示场景来说,几乎可以直接控制硬件真是太酷了。对于普通人来说,长时间使用DirectX 11或使用已经实现了DirectX 12的引擎要容易得多。

我认为你提出的问题太广泛了。我建议只关注一件事(例如,为什么Mantle应该比DirectX或OpenGL更快)来获得有意义的答案。Mantle没有做DirectX和OpenGL最终无法通过扩展完成的事情。这或多或少是降低API开销的权宜之计,具有讽刺意味的是,它似乎只对运行在AMD CPU上的CPU受限的应用程序有效。我假设mantle、dx12和ogl next都做基本相同的事情。这是错的吗?你是对的