PBO->VBO problem in GL_SELECT mode

Hello,
I am doing some heavy usage of PBO to VBO transfer (or render to vertex array) recently and have come across several bugs, some performance issues and crashes that have been resolved by the release of the nVidia 91.28 beta driver. I am however having this bug that wont go away and that I was able to reproduce using nVidia’s gpu_particle example.

Basically, when I draw a mesh using a VBO that was built by a PBO->VBO transfer (GL_PIXEL_PACK_BUFFER) and that the RenderMode is set to GL_SELECT, I get a crash. This can easily be reproduced with nVidia’s example gpu_particles by setting the RenderMode to GL_SELECT. Like this:

 

#define PICK_BUF_SIZE	 2500000
static UINT	g_unBuf[PICK_BUF_SIZE*2];

void 
ParticleSystem::Display()
{
	::glSelectBuffer( PICK_BUF_SIZE, (GLuint*)g_unBuf );

	(void) ::glRenderMode( GL_SELECT );
	::glInitNames();
	
	::glPushName( (GLuint) -1 );

	// draw particles
    glColor3f(1.0, 0.0, 0.0);
    glPointSize(1.0);
    glBegin(GL_POINTS);
    for(int i=0; i<m_w*m_h; i++) {
        glVertex3fv( (float *) &m_pos[i] );
    }
    glEnd();

	::glPopName();

	GLint	numberOfHits = ::glRenderMode( GL_RENDER ); // Note - the return to this call is SIGNED !
}

What’s happening here? Another driver bug? Or a limitation? Can VBO be used while in GL_SELECT mode?