首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX 12自定义实现是否与DirectX 11相同?

DirectX 12自定义实现是否与DirectX 11相同?
EN

Stack Overflow用户
提问于 2016-12-12 09:38:40
回答 1查看 455关注 0票数 1

我正在阅读“使用DirectX 11进行实际渲染”,并希望在深入了解DirectX概念之后编写一个简单的引擎。

但是今天我们有了DirectX 12,它解决了驱动程序开销的问题(因为我们更接近硬件),我正在考虑使用12作为我的主要渲染器。但是,在开发结束时,我的引擎会成为某种驱动程序吗?我认为驱动程序开发人员比我聪明得多,所以我可以让12的渲染速度比11慢,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 17:29:04

DirectX 11和DirectX 12以不同的方式解决了相同的问题。它们都驱动相同的硬件,并且能够访问相同的硬件特性。不同之处在于CPU和内存的管理方式。

使用DirectX 11,API是“低级”的,但是DirectX运行时管理视频内存,协调资源上传/下载,处理缓冲区重命名,并确保GPU和CPU之间的适当同步。

使用DirectX 12,DirectX运行时所做的工作非常少,应用程序负责DirectX 11运行时为您处理的所有事务。这对于允许应用程序更好地控制硬件驱动方式是非常强大的,但这意味着程序员有责任在不寻常的情况下和在广泛的硬件范围内完成所有事情。

图形编程和调试已经是一个挑战,使用DirectX 12会使它变得非常复杂,其中包括计时问题(类似于执行多线程无锁编程的风险)、更多特定于供应商的行为(这需要更多的测试验证、在多个框架上可能发生的资源管理问题),以及更多责任来管理所有可编程着色器如何管理与PCU的信息共享。

--如果您对使用DirectX进行图形编程很陌生,那么我强烈建议您使用DirectX 11。即使最终使用DirectX 12是有意义的,但API设计和文档假定您已经是DirectX 11编程和HLSL方面的专家。一旦您是DirectX 11方面的专家,那么在您的特定项目中使用DirectX 12可能仍然没有意义,除非您发现DirectX 11 API的CPU开销确实是一个瓶颈。对于那些主要对学习DirectX 11感兴趣的人来说,这两者都值得学习,但是首先你应该牢牢把握住它。

还需要注意的是,DirectX 11和DirectX 12有不同的系统要求。Windows 7、Windows8.1和Windows 10支持 DirectX 11,并要求WDDM 1.x驱动程序,这些驱动程序可广泛用于Direct3D硬件特征级 9.1至11.1等视频硬件。Windows 10支持DirectX 12 (包括Xbox ),并且需要WDDM2.0驱动程序,这些驱动程序并不适用于所有视频硬件。WDDM2.0驱动程序广泛适用于大多数Direct3D功能级别11.0或更高版本的硬件,这是“核心PC游戏玩家”市场上的大多数GPU,但不适用于商业环境或较旧的PC游戏系统中使用的大部分视频卡。

目前,使用DirectX 12的“亮点”是:如果你正在编写一款游戏,并且拥有一支规模不错的图形开发团队;目标是游戏机、“核心”电脑玩家和/或桌面电脑平台(UWP);并期待着这款游戏将受到CPU的限制。

参见DirectX工具包中的DirectX 11DirectX 12

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41097857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档