PDA

View Full Version : OpenGL frame rate



martinb0820
21st September 2009, 19:37
I'm not positive the issue described below is related to Qt, or whether it is a Coin3D / VSG Open Inventor problem, but Qt seems to be the common element.

I’m building an application to run only on Windows XP (for now), with Qt 4.5. I've evaluated both VSG Open Inventor and Coin3D, and am experiencing very slow frame rates on some PCs with either one. On some PCs, complex objects or large scene graphs slow the frame rate to a frame every few seconds. These PC are mostly Core 2 Dells 64-bit XP, NVidea graphics cards and dual monitors. On my development PC (Core 2 Dell, 32-bit XP, ATI graphics card, dual monitors) the frame rate is acceptable with these scene graphs.

The interesting thing is that we have very old legacy software built on SGI Open Inventor and FLTK, that can animate the same scene graphs; this works fine on all the PCs.

I'm not sure what I'm looking for. It could be related to how I'm using Coin3D and Open Inventor, but it the fact that the modern application runs fine on some PCs would seem to rule that out, and that the legacy code runs fine everwhere, points toward OpenGL.

Thanks in advance for any help!
Martin

martinb0820
21st September 2009, 20:49
One new data point - it looks like the problem may be specific to 64-bit Windows. I loaded XP64 on my development PC, ran the application and experienced the slow frame rate. The application was not thrashing virtual memory, but the utilization of one of the CPU's looked like an amplifier being driven into clipping. This is very different from how it looks on 32-bit Windows, where it uses much less CPU.

martinb0820
22nd September 2009, 18:56
Additional information: I profiled the code on 32- and 64-bit XP. On XP64, it was spending 74% of the time in wglChoosePixelFormat. This routine didn't even appear in the 32-bit profile. Instead, some routines in the atioglxx module were near the top, but at much lower percentages (e.g. 23%). The atioglxx routines didn't appear at all in the 64-bit trace. BTW, the hardware was exactly the same - the PC was booted off removable 32- and 64-bit drives.

Any ideas?

Thanks,
Martin

martinb0820
2nd October 2009, 19:24
Turned out to be incorrect OGL DLLs.