cudaErrorInvalidResourceHandle cudaGraphicsMapResources

在主線程中創建的cudaGraphicsResource 對象,主線程中進行cudaGraphicsMapResources 操作是正確的,但是在子線程中進行cudaGraphicsMapResources 操作卻出錯了,報錯:400(cudaErrorInvalidResourceHandle)。
猜測應該是map操作不能誇線程的。
同樣的,d3d中也是context在哪個線程創建,則需要在對應的線程進行D3D11Resource的資源創建,否則也是報錯的。雖然cudaGraphicsResource 創建時沒有顯示的使用cudacontext,但是cudaresource也是準守這個原則的。
而對於resource 的訪問則沒有多線程的限制。當然爲了安全可以添加鎖。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章