- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
深度模板缓冲区资源定义为DXGI_FORMAT_D24_UNORM_S8_UINT格式。 我假设要在该资源中创建着色器资源 View (SRV),需要将 View 格式描述为: DXGI_FORMAT
我设置了一个 DX12 应用程序,该应用程序仅清除每帧的后缓冲区。 它确实是准系统:没有 PSO,没有 root...唯一的特殊性是,它在启动新帧 ( msdn waitable swap chain
不仅 fps 从 60 下降到 20-21,而且图像看起来像这样扭曲。第二张图应该是这样的 What it looks like What it should look like if (captur
我正在尝试通过 TextOut 移动文本 这是代码 IDXGISurface1* g_pSurface1 = NULL; HRESULT hr = pSwapChain->GetBuffer(0, _
使用 DXGI,我可以获得所有显卡的列表。 IDXGIFactory* factory; vector all_adapters; HRESULT result(S_FALSE); result =
我正在用 DirectX 12 处理的空白交换链填充一个窗口。在使用 Explicit Multi-Adapter 玩一圈时,我遇到了这种奇怪的行为...... 如目前存在的几乎所有 DX12 演示代
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我发现使用翻转模型(DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 或 DXGI_SWAP_EFFECT_FLIP_DISCARD)创建的交换链被锁定到 VSync(1/60 秒),
https://msdn.microsoft.com/en-us/library/windows/desktop/bb174562(v=vs.85).aspx 根据 IDXGIResource::Ge
https://msdn.microsoft.com/en-us/library/windows/desktop/bb174562(v=vs.85).aspx 根据 IDXGIResource::Ge
因此,我一直在学习创建直接 x 窗口的教程。运行教程代码发现 here我收到 DXGI.h 文件的一系列错误。主要是一系列的: C:\Program Files (x86)\Microsoft Dir
我正在使用 AcquireNextFrame 来截取我的桌面。是否可以在设置中设置我想要的输出图像的尺寸?我在文档中看到这个函数 IDXGIOutput::SetDisplaySurface 可以提供
我正在尝试使用 C++ 查询 Windows 机器以获得可用显卡的列表。 这个 SO 问题有一个答案(来自 moxize),它提供了一种方法(d3d9.h): get-the-graphics-car
我目前正在尝试使用 DirectX 创建一些基本的,但我目前卡住了,因为我似乎无法找到外部符号“CreateDXGIFactory2”。 我已经包含了库“dxgi.lib”,但找不到外部符号。我也查看
当我将其中一台显示器切换到全屏模式时,有时其他显示器会变成黑色并且不显示任何内容。是我做错了什么还是只是一些错误? 我创建了一个窗口,然后创建了一个绑定(bind)到该窗口的交换链。我用第一个参数 t
我正在调用这个方法: http://msdn.microsoft.com/en-us/library/dd371264(VS.85).aspx 调用失败并返回 E_NOINTERFACE。该文档对于为
我需要将 DXGI_FORMAT_R32G32B32A32_TYPELESS 类型的 ID3D11Texture2D 纹理有效地转换为 DXGI_FORMAT_B8G8R8A8_TYPELESS 类型
我想了解 DXGI 桌面复制。我已经阅读了很多,这是我从 Microsoft 网站上的 DesktopDuplication 示例部分复制的代码。我的计划是从 DesktopImage 获取 Buff
刚刚在尝试获取可用的显示模式时遇到了一个奇怪的问题。让我解释一下... 首先,我枚举可用的适配器,然后推送到 std::vector,这工作正常: for(UINT i = 0; pFactory->
我有一个使用 DXGI 桌面复制 API 捕获桌面屏幕的程序。 我使用 IDXGIOutputDuplication::AcquireNextFrame 获取帧,并且能够逐帧捕获我的桌面。 为了继续前
我是一名优秀的程序员,十分优秀!