I have an Apple 30" Cinema HD display connected to a Radeon HD 5870 1GB in a MacPro3,1 running Mountain Lion. Changing the screen resolution did not restore OpenGL performance for me after waking from sleep.
I figured that if changing resolutions is supposed to fix the problem, then perhaps the thing the fixes the problem is that the Radeon timings (pixel clock) are altered/recalculated/reset/whatever whenever the resolution changes.
But all the resolutions for the LCD display are scaled resolutions which means the Radeon is always outputing 2560x1600. The framebuffer is of different sizes but the output timings are unchanged.
Therefore, the solution might be to create a custom resolution (using something like SwitchResX) which is not a scaled resolution. The EDID of the Cinema HD display says it supports 1280 x 800 @ 59.910Hz and 2560 x 1600 @ 59.860Hz. I used SwitchResX to add a 1280 x 800 @ 59.910Hz non-scaled resolution and restarted the Mac.
Now when I wake the Mac from sleep, I can use that 1280 x 800 non-scaled resolution to restore OpenGL performance. It works.
Note that the Apple graphics drivers will not allow both a scaled and non-scaled version of the same resolution. When I add the non-scaled 1280 x 800, I can nolonger use the scaled 1280 x 800. The difference between 1280 x 800 scaled and non-scaled is that for scaled, the graphics card does the scaling and adds filtering to the pixels making them blurry and outputs 2560 x 1600. Non-scaled outputs 1280 x 800 and the Cinema HD itself quadruples the pixels to 2560 x 1600 without filtering (making them very sharp and crisp).