Horrible OpenGL performance on Intel HD Graphics laptop
I’ve been trying to run the ReallySlick screensavers on a laptop for a while now, but some of them do not work (they crash), and the ones that do work have terrible performance and are uselessly slow.
The screensavers use OpenGL and there is a note in the readme that mentions poor performance if there is no OpenGL hardware acceleration, but they are years old and they worked perfectly well on my 10-year-old desktop with an old ATI card.
The laptop has fifth generation Intel HD which certainly should support OpenGL 2.1 which is more than what the screensavers use, and I have even been able to run 3D OpenGL games with decent performance, so I don’t understand what could be the problem.
Solution 1:
As it turns out, the laptop does indeed support OpenGL and includes hardware acceleration for it. I had pretty much given up getting the screensavers to work, but one of the pages I read just before giving up happened to have the solution.
In the Opengl.org forums, fbayle explained that for some baffling reason, Intel has decided to disable OpenGL hardware acceleration for screensavers, and only screensavers. They went on to explain that the drive checks the extension of the file being run to see if it is a screensaver and if so, disable acceleration, but fortunately it does so in a sloppy, and frankly, amateurish manner—e.g., if fExt='.scr' disableOGLAccel
—which means that you can easily work-around the bizarre limitation by simply changing the file’s extension so that it has a capital letter.
So, just rename the screensavers from Lattice.scr
to Lattice.Scr
, and so on. (For some reason, fbayle recommends .sCr
, which seems random and unnecessarily more 1337 than .Scr
.)
Apparently Terence, the author of Really Slick has had reports of the performance issues because he has added an entry to the FAQ with a link to Intel’s description of the issue—which uselessly says the “solution” is “expected behavior”—as well as a note about renaming the file.
It’s a strange, inconvenient, non–novice-friendly, and unnecessary work-around, but it’s easy and works. (Note that this may not work on newer driver versions (they may have “fixed” the solution), but hopefully newer versions are still supported so that you can request a proper fix instead of resorting to a hack.)
And now back to our regularly-scheduled screensaver (my favorite is the lattice configured as circuits—it feels like flying through cyberspace).