Cuda opengl互操作和cudaGraphicsGLRegisterImage导致错误
我正在尝试与运行在K20上的cuda和运行在quadro上的opengl进行一些跨卡通信,但我似乎无法注册我想使用cuda的纹理 我的代码看起来像这样Cuda opengl互操作和cudaGraphicsGLRegisterImage导致错误,opengl,cuda,Opengl,Cuda,我正在尝试与运行在K20上的cuda和运行在quadro上的opengl进行一些跨卡通信,但我似乎无法注册我想使用cuda的纹理 我的代码看起来像这样 glGenTextures(1, &texId); glBindTexture(GL_TEXTURE_2D, texId); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureSize, textureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); glBind
glGenTextures(1, &texId);
glBindTexture(GL_TEXTURE_2D, texId);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureSize, textureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glBindTexture(GL_TEXTURE_2D, 0);
checkGLError(); // Passes
// This will cause an Access Violation when run from visual studio 10 debugger
cudaGraphicsGLRegisterImage(&texRes, texId, GL_TEXTURE_2D,cudaGraphicsRegisterFlagsNone);
// If ran with out debugger, cudaGetErrorString() will spit out "invalid argument"
checkCudaError();
从visual studio 10调试器运行cudaGraphicsGLRegisterImage时会导致访问冲突
但是
如果在没有调试器的情况下运行,cudaGetErrorString()将抛出“无效参数”
我不确定问题可能是什么,不同的错误消息使问题变得更加混乱 嗯,我似乎已经发现了问题所在,我换了线路
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureSize, textureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
到
我不知道为什么cuda与GL_RGBA之间存在问题,但似乎是这样。我似乎已经找出了问题所在,我更改了线路
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, textureSize, textureSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
到
我不知道为什么cuda在GL_RGBA上有问题,但似乎是这样。你看过cuda SDKYes附带的OpenGL interop演示吗?但我找不到一个使用过cudaGraphicsGLRegisterImage的。我想高斯模糊演示使用这种方法来映射OpenGL纹理。我会看一看,你看过OpenGL吗CUDA SDKYes附带的互操作演示,但我找不到一个使用过cudaGraphicsGLRegisterImage的。我认为高斯模糊演示使用这种方法映射OpenGL纹理我会看看