2
votes

I have a Haskell program that uses Gtk/GtkGLExt and runs fine on Linux (up-to-date Arch and newest Ubuntu both, all Haskell libraries up-to-date, using newest 6.* GHC).

However, when I compiled and ran the same program on Windows 7, the GUI is so slow it's almost unusable. This slowness persists even when the rest of the program (usually number-crunching in the background) sits idle.

What is most perplexing is this: once out of about ten times, when run, the GUI will be as responsive as it is on Linux. No other regularities have been noticed.

To run the Windows version, I've had to compile the newest FreeType and FTGL libraries. Because of the "once-in-a-blue-moon-runs-fine" behaviour described above, I tend to think I made no errors here.

Compiling with -threaded or not, and running on more than one core makes no difference.

Has anyone dealt with this behaviour before? Is there something obvious I might be missing?

I'll gladly give more information if I haven't given enough - I simply don't know what else to tell at the moment.

1
Maybe the linked OpenGL opengl32.dll is not performant? Does GtkGLExt introduce its own OpenGL dlls - possibly an old Mesa on Windows? - stephen tetley
I don't think so. Glut32.dll seems to be the only included library, and using a different version doesn't help. - user12163
I suppose it is completely GtkGLExt fault. Did you try to compile and start provided C\C++ GtkGLExt examples? Did they run smooth? Also, seems that GtkGLExt library is pretty dead. Try to run your app in XP compatible mode. - pechenie
Okay, so running under a distinct compatibility mode doesn't do anything, but disabling desktop composition seems to fix the problem completely. - user12163
If you post an answer saying this is gtkglext's fault (and perhaps link to old.nabble.com/gtkglext-+-windows-7-td24190185.html), I'll accept it. :D Thanks. - user12163

1 Answers

1
votes

The one who deserves an accepted answer here is really pechenie.

This is gtkglext's fault. Disable desktop composition under the compatibility options when running the program. This will make the problem go away.

There's a potential fix at this link: http://old.nabble.com/gtkglext-+-windows-7-td24190185.html