Aiming for GPU limit
I'm writing a small applet that will attempt to benchmark a user's GPU before they install my application. To do this, I'm trying to throw enough triangles at the screen that it's GPU limited at various resolutions, and comparing this against my dev machine to give a rough indication of how well the application will run.
At the moment, I'm rendering about 500k textured, lit triangles and up to 8 lights. Also included are 2 Behaviors, both of which WakeupOnElapsedFrames(0); one is a RotationInterpolator that animates the lights, one is a custom class that alters parameters in the TexCoordGeneration.
My problem is this : on my fairly elderly machine I get the same (or well within error) frame rate for both 800x600x32@85 and 2048x2536x32@65, a difference of 6.5x pixels - it's fairly clearly being limited by something other than the GPU. The task manager shows javaw.exe at a fairly consistent 98% or 99%.
I've tried profiling with Eclipse's TPTP, and I've read about avoiding 100% CPU. Apparently, Behaviors are the culprits, but I still get the same problem with both Behaviors absent from the scene graph.
I've tried various combinations of VirtualUniverse.setJ3DThreadPriority(Thread.MIN_PRIORITY) and View.setMinimumFrameCycleTime(...), but nothing is helping.
So, how can I encourage J3D to load the graphics system as much as possible, while loading the CPU as little as possible? Can I even do this?