gpt4 book ai didi

c++ - Direct3D 和 DXGI 之间的区别

转载 作者:行者123 更新时间:2023-11-30 04:58:22 28 4
gpt4 key购买 nike

我正在尝试使用 C++ 查询 Windows 机器以获得可用显卡的列表。

这个 SO 问题有一个答案(来自 moxize),它提供了一种方法(d3d9.h): get-the-graphics-card-model

这个提供了另一个(dxgi.h):dxgi enumadapters

当我尝试每一个时,我发现上面的 dxgi 方法列出了所有卡片,而 d3d9 似乎只提供了其中的一个,这取决于选择的卡片NVIDIA 控制面板中的“首选图形处理器”。

我很难理解上述每条程序化路线提供的内容和用途之间的区别?

最佳答案

DirectX 图形基础结构 (DXGI) 是随 Vista 引入的。它基本上将所有枚举、显示和适配器管理以及 Direct3D 中的表示内容都考虑在内。这样,各种图形 API 就可以共存,而无需在每个 API 中为这些常见任务设置单独的机制。例如,它允许所有 Direct3D API(>= 10)只关心将 3D 内容绘制到缓冲区中,而不关心这些缓冲区来自何处,或者它们是否以及如何显示。

旧的 Direct3D 9 API 仍然有自己的适配器枚举接口(interface)。如果我没记错的话,Direct3D 9 过去只枚举实际连接了显示器的适配器。很可能是因为 API 并不真正支持 headless 渲染,因此尝试使用没有输出的适配器是没有意义的。另一方面,DXGI 在更完整的整体画面上运行 video and present network在你的机器上。最重要的是,它区分适配器(图形卡)和输出(连接到适配器的显示器)。我假设您正在笔记本电脑或其他具有集成和专用 GPU 的机器上运行!?在驱动程序控制面板中切换“首选图形处理器”很可能会改变两个 GPU 中的哪一个(逻辑上)连接到显示器。然后 Direct3D 9 将始终只枚举那个……

关于c++ - Direct3D 和 DXGI 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51671912/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com