Is it only the particle system that is using these GlobalRender::triangle calls?  If so, I think we probably want consider re-writing the particle system to be fast or taking it out altogether - this is going to be incredibly slow to be making all these calls per triangle.