【问题标题】:two host threads, two OpenGL-contexts with shared display lists (textures) and usage of cudaGLSetGLDevice两个主机线程,两个具有共享显示列表(纹理)的 OpenGL 上下文和 cudaGLSetGLDevice 的使用
【发布时间】:2012-07-24 14:35:48
【问题描述】:

我正在运行两个主机线程,它们都使用在它们引用的 OpenGL 上下文之间共享的相同纹理。我认为这些线程中的每一个都必须在第一步运行 cudaGLSetGLDevice:

  1. 将设备绑定到当前线程
  2. 将设备绑定到当前制作的 OpenGL 上下文

请注意,当线程 2 调用 cudaGLSetGLDevice 时,线程 1 仍在工作。这将包括既没有从线程 1 调用 cudaDeviceReset 也没有将其 OpenGL 上下文设置为之后完成。

我得到的错误输出是:

"在此过程中设备处于活动状态时无法设置"

我能做什么或我做错了什么?

我的系统由一个 NVIDIA GTX 550Ti 组成,我正在使用 boost::thread。

【问题讨论】:

    标签: opengl cuda


    【解决方案1】:

    解决方案是从运行时切换到不隐藏上下文管理的驱动程序 api。然后我们可以为每个主机线程创建一个 CUDA 上下文,一切都很好,即使是 OpenGL 互操作性:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 2012-08-14
      • 2018-10-01
      • 1970-01-01
      • 2012-11-14
      • 2011-07-26
      • 2014-01-25
      相关资源
      最近更新 更多