正如標題所說,我在一個循環中執行CopySubresourceRegion,並且在那裏我需要強制等待,直到它完成。從MSDN的文檔中,我看起來可以撥打ID3D11DeviceContext::Flush
,然後ID3D11DeviceContext::GetData
查詢由ID3D11Device::CreateQuery
創建的事件查詢,並使用D3D11_QUERY_EVENT
。我有一個循環調用ID3D11DeviceContext :: CopySubresourceRegion。我該如何強制等待呢?
我已經嘗試過了,它至少在我的測試中工作,但有些事情我不確定。
難道正常工作,如果我叫
CreateQuery
只是一次的循環開始前,反覆使用的查詢與每個GetData
電話嗎?創建它後應該銷燬查詢以防止查詢泄漏?似乎沒有
DestroyQuery
方法,因此可能免費撥打我的ID3D11Query*
?如果我可以調用
ID3D11DeviceContext::Map
或Unmap,然後我需要等待副本完成,那麼我還需要Flush嗎?