我正在查看documentation for IDXGIKeyedMutex
,我对以下内容有点不确定:
完成渲染后,必须调用ReleaseSync方法 表面上。
我的问题是当你完成渲染时#34;"意思?当我在即时上下文中调用Flush
或者在调用ReleaseSync
之前是否需要其他形式的GPU栅栏/同步时,是否将纹理作为移植上下文的渲染目标移除?
为什么D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
优先于D3D11_RESOURCE_MISC_SHARED
?
答案 0 :(得分:1)
在调用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一起使用,这为跨进程表面共享提供了更好的安全性。