我正在查看documentation for IDXGIKeyedMutex
,对于以下内容我不确定:
我的问题是“完成渲染后”是什么意思?是在我立即对即时上下文调用Flush
时,删除纹理作为即时上下文的渲染目标吗?还是需要其他某种形式的GPU防护/同步,才能调用ReleaseSync
?
还有为什么D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
比D3D11_RESOURCE_MISC_SHARED
更受青睐?
最佳答案
在调用ID3D11DeviceContext::Draw调用或其他调用以发出GPU命令以写入缓冲区(即ID3D11DeviceContext::CopyResource)之后,应调用IDXGIKeyedMutex::ReleaseSync。您无需显式调用Flush。有关使用AcquireSync / ReleaseSync的示例,请查看http://code.msdn.microsoft.com/DXGISyncSharedSurf
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX优于D3D11_RESOURCE_MISC_SHARED,因为它可以与D3D11_RESOURCE_MISC_SHARED_NTHANDLE一起使用,从而为跨过程曲面共享提供了更好的安全性。
关于c++ - IDXGIKeyedMutex::ReleaseSync何时呈现 “done”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14578616/