【发布时间】:2014-01-04 07:25:03
【问题描述】:
我在 DirectX 中写入纹理,然后在 CUDA 内核中读取它。在启动内核之前,我正在使用 cudaGraphicsMapResources。有时需要 10-30 毫秒。当然,这会导致应用程序中的丢帧。纹理只用 DirectX 编写,只在 CUDA 中读取,不用于其他任何地方。
我尝试了不同的方法,例如等待几帧,但并不总是有帮助。我还尝试仅在开始时调用 cudaGraphicsMapResources(而不是每次都调用它),但是我不能保证 DirectX 已经完成了纹理的写入(有时还没有)。我尝试使用线程,但是当我从不同的线程调用 cudaGraphicsMapResources 时它崩溃了。
我也觉得它主要发生在启用 vsync 时。
这是一个已知问题吗?这是什么原因造成的?有没有办法以非阻塞方式测试资源是否准备好?或者一般来说有一些解决方法吗?
我有 GeForce GTX 670,Windows 7 64 位,驱动程序版本。 331.82.
【问题讨论】:
标签: cuda