Cuda opengl互操作和cudaGraphicsGLRegisterImage导致错误

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

我正在尝试与运行在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); 
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纹理我会看看