2015-02-11 44 views
0

我可以将内容从D3D11纹理复制到另一个与ID3D11DeviceContext::CopyResource。该方法属于特定设备的直接背景,所以我不能从一个设备复制纹理到另一个(我已经尝试过了 - 它爆炸预期话说从一个D3D11设备复制资源到另一个

“D3D11腐败:ID3D11DeviceContext :: CopyResource:第一参数 不匹配装置[杂腐败#13: CORRUPTED_PARAMETER1]。”

)。

是否有任何D3D11内置手段来做到这一点,或者我必须通过临时纹理下载数据并将其上传到其他设备?

+0

据我所知,你必须明确地锁定和复制自己。这也是有道理的,因为不同的D3D设备实际上可能是不同的硬件设备。 – thang 2015-02-11 15:04:20

回答

3

要将资源从一台设备复制到另一台设备,您需要使用DXGI共享曲面。见Surface Sharing Between Windows Graphics APIs

请记住,在一般情况下,设备可能没有任何物理内存或硬件的共同点。

+0

你知道一个共享的Surface是否(明显)比自己做副本更快?我假设只有CPU开销可能会更少,因为驱动程序可以优化这一点,但通过PCIe进行复制永远无法避免。 – Christoph 2015-02-13 09:52:55

+0

我认为如果它实际上位于同一个物理设备上,可能会有一些性能优势,但这样做永远不会特别“快” – 2015-02-13 19:48:33

相关问题