"unspecified driver error" when registering textures
Hey all

I'm trying to register a texture in CUDA, so I can output the result of my raytracing, but CUDA is giving me an "unspecified driver error", which to be honest doesn't really help me pinpoint the error. :p

The code that fails is

GLint tex;
glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER_EXT,
GL_COLOR_ATTACHMENT0_EXT,
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,
&tex);
CHECK_FOR_GL_ERROR();

cudaGraphicsResource *backBuffer;
cudaGraphicsGLRegisterImage(&backBuffer, tex, GL_TEXTURE_2D, cudaGraphicsMapFlagsWriteDiscard);
CHECK_FOR_CUDA_ERROR();

cudaGraphicsMapResources(1, &backBuffer, 0);
CHECK_FOR_CUDA_ERROR();

size_t bytes;
uchar4* pixels;
cudaGraphicsResourceGetMappedPointer((void**)&pixels, &bytes,
backBuffer);
CHECK_FOR_CUDA_ERROR(); // CUDA ERROR: unspecified driver error

The texture that I'm trying to register is bound as a color texture in an fbo which itself is bound.

I have tried unbinding the fbo and binding the texture, but got the same error. I've checked that I am indeed using unsigned char with RGBA format. The texture is created with 0 border, so that's not it.

I'm hoping someone in here can spot the error or perhaps tell me an easier/different way to write my results into an OpenGL texture. Right now I'm starting to consider using a pbo and copy from it instead.

/papaboo
Hey all



I'm trying to register a texture in CUDA, so I can output the result of my raytracing, but CUDA is giving me an "unspecified driver error", which to be honest doesn't really help me pinpoint the error. :p



The code that fails is



GLint tex;

glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER_EXT,

GL_COLOR_ATTACHMENT0_EXT,

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,

&tex);

CHECK_FOR_GL_ERROR();



cudaGraphicsResource *backBuffer;

cudaGraphicsGLRegisterImage(&backBuffer, tex, GL_TEXTURE_2D, cudaGraphicsMapFlagsWriteDiscard);

CHECK_FOR_CUDA_ERROR();



cudaGraphicsMapResources(1, &backBuffer, 0);

CHECK_FOR_CUDA_ERROR();



size_t bytes;

uchar4* pixels;

cudaGraphicsResourceGetMappedPointer((void**)&pixels, &bytes,

backBuffer);

CHECK_FOR_CUDA_ERROR(); // CUDA ERROR: unspecified driver error



The texture that I'm trying to register is bound as a color texture in an fbo which itself is bound.



I have tried unbinding the fbo and binding the texture, but got the same error. I've checked that I am indeed using unsigned char with RGBA format. The texture is created with 0 border, so that's not it.



I'm hoping someone in here can spot the error or perhaps tell me an easier/different way to write my results into an OpenGL texture. Right now I'm starting to consider using a pbo and copy from it instead.



/papaboo

#1
Posted 11/05/2010 12:20 PM   
Hey all

I'm trying to register a texture in CUDA, so I can output the result of my raytracing, but CUDA is giving me an "unspecified driver error", which to be honest doesn't really help me pinpoint the error. :p

The code that fails is

GLint tex;
glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER_EXT,
GL_COLOR_ATTACHMENT0_EXT,
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,
&tex);
CHECK_FOR_GL_ERROR();

cudaGraphicsResource *backBuffer;
cudaGraphicsGLRegisterImage(&backBuffer, tex, GL_TEXTURE_2D, cudaGraphicsMapFlagsWriteDiscard);
CHECK_FOR_CUDA_ERROR();

cudaGraphicsMapResources(1, &backBuffer, 0);
CHECK_FOR_CUDA_ERROR();

size_t bytes;
uchar4* pixels;
cudaGraphicsResourceGetMappedPointer((void**)&pixels, &bytes,
backBuffer);
CHECK_FOR_CUDA_ERROR(); // CUDA ERROR: unspecified driver error

The texture that I'm trying to register is bound as a color texture in an fbo which itself is bound.

I have tried unbinding the fbo and binding the texture, but got the same error. I've checked that I am indeed using unsigned char with RGBA format. The texture is created with 0 border, so that's not it.

I'm hoping someone in here can spot the error or perhaps tell me an easier/different way to write my results into an OpenGL texture. Right now I'm starting to consider using a pbo and copy from it instead.

/papaboo
Hey all



I'm trying to register a texture in CUDA, so I can output the result of my raytracing, but CUDA is giving me an "unspecified driver error", which to be honest doesn't really help me pinpoint the error. :p



The code that fails is



GLint tex;

glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER_EXT,

GL_COLOR_ATTACHMENT0_EXT,

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT,

&tex);

CHECK_FOR_GL_ERROR();



cudaGraphicsResource *backBuffer;

cudaGraphicsGLRegisterImage(&backBuffer, tex, GL_TEXTURE_2D, cudaGraphicsMapFlagsWriteDiscard);

CHECK_FOR_CUDA_ERROR();



cudaGraphicsMapResources(1, &backBuffer, 0);

CHECK_FOR_CUDA_ERROR();



size_t bytes;

uchar4* pixels;

cudaGraphicsResourceGetMappedPointer((void**)&pixels, &bytes,

backBuffer);

CHECK_FOR_CUDA_ERROR(); // CUDA ERROR: unspecified driver error



The texture that I'm trying to register is bound as a color texture in an fbo which itself is bound.



I have tried unbinding the fbo and binding the texture, but got the same error. I've checked that I am indeed using unsigned char with RGBA format. The texture is created with 0 border, so that's not it.



I'm hoping someone in here can spot the error or perhaps tell me an easier/different way to write my results into an OpenGL texture. Right now I'm starting to consider using a pbo and copy from it instead.



/papaboo

#2
Posted 11/05/2010 12:20 PM   
Scroll To Top

Add Reply