gpt4 book ai didi

DirectX 11 : simultaneous use of multiple adaptors

转载 作者:行者123 更新时间:2023-12-04 15:14:18 28 4
gpt4 key购买 nike

我们需要在一台PC上驱动8到12个显示器,所有显示器都呈现单个3D场景图的不同 View ,因此必须使用多个图形卡。我们目前正在dx9上运行,因此希望移至dx11,以期使此操作变得更容易。

初步调查似乎表明,这种明显的方法行不通-除非我们从单独的流程中驱动每张卡,否则性能很差。网络搜索没有发现任何问题。有人可以建议通过dx11在单个进程中同时利用多张卡的最佳方法吗?

最佳答案

我看到您已经找到了解决方案,但是我认为最好将我自己的最新经验分享给其他遇到此问题的人...

是的,您可以从一个过程中驱动任意数量的适配器和输出。以下一些信息可能会有所帮助:

在DXGI和DX11中:

每个图形卡都是一个“适配器”。每个监视器都是一个“输出”。有关通过这些枚举的更多信息,请参见here

有了要使用的适配器的指针后,请使用D3D11CreateDevice为每个适配器创建一个设备(ID3D11Device)。也许您想要一个不同的线程来与每个设备进行交互。如果该线程可以帮助您加快处理速度,则可能具有特定的处理器关联性。

每个适配器拥有自己的设备后,为每个输出创建swap chainrender target。您还可以在输出时也为每个输出添加create your depth stencil view

创建交换链的过程将需要设置窗口:每个输出一个窗口。我认为从包含交换链的窗口驱动渲染没有太大好处。您可以仅将Windows创建为交换链的主机,然后再完全忽略它们。

对于渲染,您将需要遍历每个设备的每个输出。对于每个输出,将设备的渲染目标更改为使用OMSetRenderTargets为当前输出创建的渲染目标。同样,您可以根据需要在不同的线程上运行每个设备,因此每个线程/设备对将通过用于渲染的输出具有其自己的迭代。

在执行此过程时,以下一堆链接可能会有所帮助:

Display Different images per monitor directX 10

DXGI and 2+ full screen displays on Windows 7

http://msdn.microsoft.com/en-us/library/windows/desktop/ee417025%28v=vs.85%29.aspx#multiple_monitors

祝你好运!

关于DirectX 11 : simultaneous use of multiple adaptors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10625595/

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