Selection mode from the driver's perspective

I’m curious how the graphics driver and hardware handles selection mode. If someone can give me a quick overview that would be great. Otherwise here are a couple specific questions.

My understanding of what occurs is the objects are rendered and culled based on a skinny frustrum defined by gluPickMatrix. Objects inside the frustrum are classified as hits.

Is this culling done by the CPU or GPU? If it is done by the GPU how is the hit or miss result returned to the application?

This is done by the CPU on all implementations that I know about.

Check out the OpenGL spec or the Red Book for details. It’s really pretty simple, but I would expect this to never be faster than doing it yourself.

The only reason I’d use OpenGL selection is if performance didn’t matter much and I didn’t have time to implement it myself.

Thanks -
Cass

Thanks for the reply. I had implemented Selection mode based on the Red Book, but I’ve since changed my method. It’s being slow brought up the question about how it worked.