Performance problems when Aero is enabled?

I have a small scene (level) with about 4000 vertices. It is displayed with about 800 fps and I can smoothly navigate in it, so far. By pressing a key I can add “moving boxes” to the level but as soon as I do so, the scene starts to stutter pretty strong. I noticed that the stuttering will only happen when Aero is enabled, when Aero is disabled it seems to work fine without stutter? Is it possible to find out where the stuttering comes from?



Graphics: AMD (ATI) FirePro M5950 (FireGL) Mobility Pro Graphics

OS: Windows 7 x64

You shouldn’t have much problems running this. Are your drivers up to date?



As for moving boxes, I guess it depends on how many boxes you have on the screen at the same time.

There are some gpu profiling tools out there. I woudl try to start with http://pcforalla.idg.se/2.1054/1.127411 Maybee the problem is simply that the internal memory is ful and the ddriver starts to swap stuff.

As for the boxes, adding a single one is enough… and as I said it happens only with Aero enabled.

And I’m search for newer drivers right now, but my current one seems up to date.

Got lots of memory on that laptop? What CPU is in that thing?

It’s a dell precision notebook

Intel Core i5-2520M @2,5GHz

8 GB RAM

256 GB SSD Drive

hi sorry, but what is aero? its not mentioned anywhere :open_mouth:

Aero is Windows Vista/7 extended GUI with transparency, glass effects, etc.



Computers having “problems” with Aero are usually those with low-end graphic cards, but this is not really the case here. I’m pretty sure this is a driver issue, but I’ve been wrong before.

I checked my drivers they are up to date…

madjack said:
Aero is Windows Vista/7 extended GUI with transparency, glass effects, etc.

Computers having "problems" with Aero are usually those with low-end graphic cards, but this is not really the case here. I'm pretty sure this is a driver issue, but I've been wrong before.

ah, now i understand, ty
douter said:
I checked my drivers they are up to date...

Where exactly did you check? Don't use Windows Update! These drivers are evil. If you can check ATI/AMD's site for new drivers. If that's the case then... nothing comes to mind why your setup would act that way.

Just for the sake of completeness, and if possible, can you test that program on a different computer with Aero running? This could help to see if it's the code (unlikely) or your computer, or something else...

I tested my program also on another computer with a GeForce 460GTX, also W7x64 and with Aero enabled. There it runs always fine at 3000 fps…

At this point my guess would be that your video card has a badly implemented version of OpenGL, or it’s just not as powerful as I thought it would be. It’s not an old card, went retail in April if I remember correctly… Unless this is AMD specific, although I doubt it, it’s possible.



You -are- running this on a laptop… Maybe it’s running on low performance? Maybe you can turn acceleration on? I know you can switch that on/off when using batteries or power cord.

I went through all the options in the Catalys Suite and set everything to performance but it didn’t help.



I also tried the line blow which actually improved the fps but it also didn’t help with the stuttering.



[java]jme3tools.optimize.GeometryBatchFactory.optimize(getRootNode())[/java]



I’m currently rebuilding everything piece by piece so I hopefully can pin point something in my code.

I’m not talking about the Catalyst settings. There is an option in Windows that will throttle the computer’s performance when using batteries. You can change this. You should be able to access it by double-clicking on the battery icon in the taskbar iirc.



GeometryBatchFactory will help with speed, that’s a given, although it can’t be used with everything.

I found something… it happens only with the first method “createCube” the other one “createCube2” doesn’t make problems…



[java] private void createCube() {

Node cube = (Node) getModel(“Cube.mesh.xml”);

float scale = 0.6f;

cube.scale(scale);

float size = 0.5f * scale;

cube.setLocalTranslation(-3.1f - (0.5f * scale), (0.5f * scale), 3.1f + (0.5f * scale));

CubeControl control = new CubeControl(“Test”, cube, size);

getPhysicsSpace().add(control);

getRootNode().attachChild(cube);

}



private void createCube2() {

Box box = new Box(Vector3f.ZERO, 0.3f, 0.3f, 0.3f);

Geometry boxGeo = new Geometry(“boxGeo”, box);

Material boxMat = new Material(assetManager,

“Common/MatDefs/Misc/Unshaded.j3md”);

boxMat.setColor(“Color”, ColorRGBA.Brown);

boxGeo.setMaterial(boxMat);

boxGeo.setLocalTranslation(0f, 0.5f, -19f);

boxGeo.setLocalTranslation(-3.1f - 0.3f, 0.3f, 3.1f + 0.3f);

CubeControl control = new CubeControl(“Test”, boxGeo, 0.3f);

getPhysicsSpace().add(control);

getRootNode().attachChild(boxGeo);

}

[/java]