【发布时间】:2017-12-01 10:29:41
【问题描述】:
我有一个使用 Ogre 引擎进行渲染 (OpenGL) 的应用程序。有一个绑定到管道的纹理。还有一个 CUDA 调用可以修改该纹理。基本上是这样的:
cudaGraphicsMapResources(tex);
// call cuda kernel that writes to te texture
cudaGraphicsUnmapResources(tex);
这有多安全? CUDA 是否有可能更新 OpenGL 当前使用的纹理?我不知道 OpenGL,但知道其他 API。在 DirextX 12 或 vulkan 中,我需要为此类工作设置障碍或其他同步机制。但另一方面,DirectX 11 允许安全地更新映射资源,因为它在 API 内部进行了同步。
【问题讨论】: