首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dx11和dx12在开发中的主要区别是什么?

dx11和dx12在开发中的主要区别是什么?
EN

Stack Overflow用户
提问于 2022-04-11 11:22:29
回答 1查看 162关注 0票数 0

我首先学习了dx12,所以我不知道dx11是如何工作的。

我听说dx11总体上容易一些,但它在哪里呢?例如,在哪里使用常量缓冲区?

EN

Stack Overflow用户

回答已采纳

发布于 2022-06-08 23:34:04

主要的区别在于,在使用DX12时,您需要非常明确地说明如何(通过API)与GPU对话。DX11是一个更高的级别(概念上),这意味着大量的繁重工作都是在引擎盖下完成的(在驱动程序中)。在使用API (着色器、各种状态等)时,仍然需要将所有不同的部分放在一起,但是除了指定所需的内容和设置之外,您并不需要考虑所有这些东西是如何结合在一起的。

DX12的明确性涉及到更多的工作;您需要编写更多的代码,跟踪更多的状态(并提前考虑这些状态是如何组合在一起的),并且通常只需要更仔细地考虑问题。驱动程序是一个相对较薄的层,大部分的工作都取决于应用程序开发人员。

使用D3D11,API要简单得多,更不显着,因此您需要的提升就更少了。在司机身上做了大量的工作(对你不透明)。大多数现代的驱动程序都会旋转一串线程,将所有的东西整合到对设备有意义的东西中,并隐藏大量的开销。

使用DX11,驱动程序得到了很大的优化,因此性能非常好。但是,与开发人员明确了解谜题中所有部分的良好DX12应用程序相比,它最终还是要做更多的工作(即使大部分工作是“幕后的”)。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71826932

复制
相关文章

相似问题

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