cudaGraphicsGLRegisterBuffer error on Win64

Hi all,

Since I’ve updated to the 5.5.20 toolkit, I get an error whenever I call cudaGraphicsGLRegisterBuffer in a 64 bit build on Windows.
In my own code, I get a cudaErrorUnknown, and a cudaErrorDevicesUnavailable while trying to run SDK samples (i.e postProcessGL).
Both projects work fine with 32 bit builds.

I had no problem with 64 bit builds of my code with previous versions of the toolkit (5.0 and even 5.5.something (something < 20)).

Have others encountered this as well? Is this a bug in the new toolkit?

Using Win7, VS2010.

-Greg

Hi Greg,

I have a similar issue in a call to cudaGraphicsGLRegisterBuffer … in 5.5. It took me a while to narrow it down to this call, but I finally did just a little while ago. I’m using MSVS2010 on a Windows 7, 64 bit machine but compiling it for Win32 debug mode. I’ve also downloaded and installed the most recent driver - GeForce 326.41 beta.

The stack (after successfully calling cudaGraphicsGLRegisterBuffer ~1615+ times in a loop…) shows the following very cryptic nvoglv32.dll error:

ntdll.dll!_ZwRaiseException@12()  + 0x12 bytes	
ntdll.dll!_ZwRaiseException@12()  + 0x12 bytes	
nvoglv32.dll!68a81fd1() 	
[Frames below may be incorrect and/or missing, no symbols loaded for nvoglv32.dll]	
KernelBase.dll!_GlobalAlloc@8()  + 0x6e bytes	
00770000()	
8b7f74c0()	

Of course, I don’t have the symbols for nvoglv32.dll … so I’m stuck! I also tried compiling it with cuda v5.0 and received the almost identical error (same cudaGraphicsGLRegisterBuffer call):

ntdll.dll!_ZwRaiseException@12()  + 0x12 bytes	
ntdll.dll!_ZwRaiseException@12()  + 0x12 bytes	
nvoglv32.dll!68cf1fd1() 	
[Frames below may be incorrect and/or missing, no symbols loaded for nvoglv32.dll]	
KernelBase.dll!_GlobalAlloc@8()  + 0x6e bytes	
00870000()	
8b7f74c0()	

Doug

I believe I exonerated this CUDA function (cudaGraphicsGLRegisterBuffer ) call last night on a 64bit Win7 box.

I modified one of the CUDA samples (simpleCUDA2GL) to run in a loop where the cudaGraphicsGLRegisterBuffer was called repeatedly … and I ran it to where it was called 5000x - ran that number twice without any ill effects. I then ran it 10000x with no issues - then I ran it overnight with 100,000,000 iterations… and it was running fine when I got up in the morning with over 2,000,000 iterations having been completed.

Which makes me wonder if (in my case) it is in the hand off of a Qt (v4.8.5) allocated QGLBuffer pixelbuffer object. I’ll look into that today.