私はレンダリング(OpenGL)のためにOgreエンジンを使用するアプリケーションを持っています。パイプラインにバインドされたテクスチャがあります。また、そのテクスチャを変更するCUDAコールがあります。基本的には次のようになります。OpenGLが使用するテクスチャを変更するのは安全ですか?
cudaGraphicsMapResources(tex);
// call cuda kernel that writes to te texture
cudaGraphicsUnmapResources(tex);
これはどれくらい安全ですか? CUDAが現在OpenGLによって使用されているテクスチャを更新する可能性はありますか?私はOpenGLを知らないが、他のAPIを知っている。 DirextX 12またはvulkanでは、この種の作業に障壁やその他の同期メカニズムを設定する必要があります。一方DirectX 11では、マップされたリソースを安全に更新することができます。これは、API内部で同期が取られているためです。
ありがとうございました。実際には機能しますが、未定義の動作がないことを確認したいと思います。この保証について説明するドキュメントまたはその他のリソースへのリンクを提供してください。 – nikitablack