I am an experienced software engineer, but I have _no_ experience whatsoever with OpenGL, Glut, GLEW, DRI, Mesa, or pretty much anything related to graphics. (This stuff is just not my forte.)

Despite my abundant ignorance, have decided to jump into the deep end of the pool and try to solve a rather annoying problem. The problem has been discussed in this thread:

In a nutshell, XBMC is getting the wrong rasterizer (the software rasterizer) whenever it is run under the UID of any non-root user. The result is that it is slower than molasses in January, and essentially unusable for any and all non-root users. There is quite obviously a permissions problem somewhere, but where, exactly? I haven't a clue, but hope somebody here will be kind and pass me one.

I am no stranger to debugging sizable software systems. I know how this is going to go. Somewhere, in some routine in some piece of code, there is a fork in the road. At that fork, if you are logged in as root, you go left. Otherwise you go right. I know that if I can just find the location of that place, i.e. which hunk of software, and which source file, and which function, then I will be 99% of the way to solving the problem.

So, can anybody here be so kind as to tell me where, exactly, the decision is made as to which rasterizer will be used? If so, I would be eternally grateful.

Thanks in advance for any and all assistance.