我正在查看documentation for IDXGIKeyedMutex ,对于以下内容我不确定:



我的问题是“完成渲染后”是什么意思?是在我立即对即时上下文调用Flush时,删除纹理作为即时上下文的渲染目标吗?还是需要其他某种形式的GPU防护/同步,才能调用ReleaseSync

还有为什么D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEXD3D11_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/

10-10 07:53