我正在使用AMD Radeon HD 6000 series
它支持Open GL 4.1
. 使用下面的代码,我在我的 GPU 上分配内存以加快处理速度:
glGenBuffersARB(1, &Id[0]);
enm = glGetError();
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, Id[0]);
enm = glGetError();
glBufferDataARB(GL_PIXEL_UNPACK_BUFFER_ARB, 1920*1080*3, NULL, GL_STREAM_DRAW_ARB);
enm = glGetError();
guibuffer[loop] = (UINT8*)glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, GL_WRITE_ONLY_ARB);
enm = glGetError();
后来在guibuffer
缓冲区我执行 YUV 到 RGB 转换并使用 opengl 渲染它。
渲染非常适合上述显卡。但是,当我在 上尝试相同的代码时,我在渲染窗口中NVidia GEFORCE 310 GT218
得到一个白屏。支持此显卡的 open GL 版本是openGL 3.2
.
谁能建议导致问题的原因是什么?是两种显卡支持的opengl版本不同,还是不同版本的内存分配方式不同。