相关疑难解决方法(0)

在Windows上创建并行屏幕外OpenGL上下文

我正在尝试设置并行多GPU离屏渲染上下文.我使用"OpenGL Insights"一书,第27章"NVIDIA Quadro上的多GPU渲染".我还查看了wglCreateAffinityDCNV 文档,但仍无法将其固定下来.

我的机器有2个NVidia Quadro 4000卡(无SLI).运行在Windows 7 64bit上.我的工作流程如下:

  1. 使用GLFW创建默认窗口上下文.
  2. 映射GPU设备.
  3. 销毁默认的GLFW上下文.
  4. 为每个设备创建新的GL上下文(目前只尝试一个)
  5. 为每个上下文设置boost线程并使其在该线程中是最新的.
  6. 分别在每个线程上运行渲染过程.(无资源共享)

创建的所有内容都没有错误并且运行但是一旦我尝试从屏幕外FBO读取像素,我在这里得到一个空指针:

GLubyte* ptr  = (GLubyte*)glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY);
Run Code Online (Sandbox Code Playgroud)

glError也会返回"UNKNOWN ERROR"

我认为可能是多线程是问题但是在单线程上运行时相同的设置会给出相同的结果.所以我认为这与背景创作有关.

我是这样做的:

  ////Creating default window with GLFW here .
      .....
         .....
Run Code Online (Sandbox Code Playgroud)

创建屏幕外的上下文:

  PIXELFORMATDESCRIPTOR pfd =
{
    sizeof(PIXELFORMATDESCRIPTOR),
    1,
    PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,    //Flags
    PFD_TYPE_RGBA,            //The kind of framebuffer. RGBA or palette.
    24,                        //Colordepth of the framebuffer.
    0, 0, 0, 0, 0, 0,
    0,
    0,
    0,
    0, 0, 0, 0,
    24,                        //Number of bits for …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

6
推荐指数
1
解决办法
1738
查看次数

标签 统计

c++ ×1

opengl ×1