OPENGL Texture Object And CUDA kernel

How to access OPENGL Texture Object in CUDA kernel ?
In CUDA 2.0, Data Exchanging between OpenGL and CUDA is only one method:
Map Buffer Object. The performance is very worse.

the Steps like this:

In Opengl:

glGenBuffersAR(target,PBOID)
glReadPixel(…, 0) or
glGetTexImage(…, 0)
glBindBufferARB(target,0);

In CUDA:

void* pBuff =NULL;
cudaGLRegisterBufferObject(PBOID);
cudaGLMapBufferObject(&pBuff,PBOID);

…//Now can Use pBuff in CUDA kernel

cudaGLUnmapBufferObject(PBOID)
cudaGLUnregisterBufferObject(PBOID)

The Performance bottlenecks is in OpenGL: glReadPixel(…, 0) or glGetTexImage(…, 0)

I Hope that In next version, CUDA can access OPENGL Texture Object directly.