2015-02-11 38 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

相關問題