comment out
m_r3dFrameBuffers.StoreDepth (); // save depth buffer for 1st trans pass
and
m_r3dFrameBuffers.RestoreDepth ();
from new3d.cpp
It's only a simple blit between render targets but I think this is what is killing performance on ATI. You can run it like this but it won't be as accurate with regards to overlapping transparency layers.
Exactly how the frame buffers work on the model3 is still a bit of a mystery, but the current render path is almost 100% accurate.
that change gets rid of all the slowdowns and i think its a great solution until amd decides to solve its issues related with their Opengl drivers