Very low performance with opengl...

Hi there!

I was very happy when SUN announced somewhere in beta-1 days that there will be an OpenGL-based java-2d pipeline.

However when I tested beta1 I was a bit suprised cause it was VERY slow and unstable. Now we have RC and OpenGL i still soo buggy and slow on my machine.

I am using linux with a GeforceGo-480 (an higher clocked 460) and nvidia-drivers-6106, I know that opengl-accerlation works fine, I can play shooters with high performance but only java’s-opengl-pipeline is slow :frowning:

Is this a known problem, does maybe anybody know why this is so (someone working in the java2d-team) and when does sun plan to fix this?

Thanks a lot, lg Clemens

what message do you get when you enable the GL pipeline?
[edit] oh, and what do you test it with? application, game?

This could be http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5073409

I’m getting this error, too (slow graphics, crashes and messed up graphics with the opengl pipeline) and I’m afraid 1.5 will have no useable GL acceleration for the only useable GL driver under linux. Rumors are that 1.5 goes final on Sep 30 and there’s nothing in the bug database making me more optimistic regarding this bug.

(Isn’t it sad somehow? Java could really do it right with High Performance 2D Graphics - something QT 4 and Cairo /Glitz promise for somewhen in the future. We could have it now with Java - if only it worked…)

Something I found when using the pipeline is that your textures need to be sized in powers of 2. If you don’t, you will take a large performance hit.

HTH,
Dr. A>

[quote]Hi there!

I was very happy when SUN announced somewhere in beta-1 days that there will be an OpenGL-based java-2d pipeline.

However when I tested beta1 I was a bit suprised cause it was VERY slow and unstable. Now we have RC and OpenGL i still soo buggy and slow on my machine.

I am using linux with a GeforceGo-480 (an higher clocked 460) and nvidia-drivers-6106, I know that opengl-accerlation works fine, I can play shooters with high performance but only java’s-opengl-pipeline is slow :frowning:

Is this a known problem, does maybe anybody know why this is so (someone working in the java2d-team) and when does sun plan to fix this?

Thanks a lot, lg Clemens
[/quote]
As krausest noted, this sounds like 5073409. Please note that it appears that the 6106 drivers are the source of the regression (there were no changes to our OGL pipeline in that timeframe). We are trying to boil down the problem into a testcase for Nvidia to investigate, as the problem should be fixed in their drivers (there’s no apparent workaround for us). It would probably help our cause if members of this community could get on Nvidia’s radar, by telling them that their 6106 drivers caused this regression, and you’d like to see it fixed. We can only do so much on our side. We’re trying to get driver teams from Nvidia and ATI testing our pipeline regularly so that they can avoid big regressions like this in the future.

The slowness you are seeing could be due to slow system memory copies in Nvidia’s drivers, which we are hoping to workaround in an upcoming release (see 5020009).

If you have a specific testcase that demonstrates the performance problems, please send it to me so that we can get to the source of your problem.

Thanks,
Chris

[quote]Something I found when using the pipeline is that your textures need to be sized in powers of 2. If you don’t, you will take a large performance hit.

HTH,
Dr. A>
[/quote]
Could you tell me more about this (which hardware you’ve seen this on, under what conditions, and perhaps a testcase)? We cache non-pow2 images in pow2 textures anyway, so there should be no performance degradation if you’re using non-pow2 managed images. (The only downside is that we end up wasting some texture memory, since there may be some unused space in that pow2 texture. This is effectively solved on newer boards that support the GL_ARB_non-power-of-two extension.)

Thanks,
Chris

Wow, never thought that this thread would create such high waves…

Hmm, I also had unstable behaviour and really terrible performance (compared to X11-Pipeline) with older drivers, I dont think its only a problem of 6106. Only the regular crash at jvm-exit is a problem that occurs with 6106 much more often.
The other Graphiccard I have (Matrox-G400, Opengl-1.3) completly does not work (at least with beta2), no messages are shown at all.

I really love the idea of OpenGL-enabled java2d, since it would let you choose wether you want network-compliance (you can laugth but I daily use java-apps via remote x-forearding…), however its completly useless on my machine for now…

However I have to say that I really want to thank you for all your work (at least ati-users will have better 2d-apps for now g ), good luck with bug-fixing.

lg Clemens

PS: Shouldnt we start a thread where people could subscribe that they use nvidia-drivers and would love to see better performance, we could send this list to nvidia which would increase the pressure…

PS2: Is java2d-opengl/nvidia only known to be slow on linux or also on linux?

PS3: Its e.g. very slow when I start the java2d-demo with opengl-enabled. The initial animation (java2d…provides…blablabla…) runs very smooth on X11 but with opengl I only have ~0.5fps :frowning:

my Intel Graphics card with Open GL 1.3 support shows no changes when OpenGL is enabled. It prints out a message saying it can’t use it.

[quote]my Intel Graphics card with Open GL 1.3 support shows no changes when OpenGL is enabled. It prints out a message saying it can’t use it.
[/quote]
as Bill Gates said (in his fabulous BSOD sequence)
“that must be the reason why we don’t ship yet…”
:wink:

but they plan to ship it on 30. spetember, this is what makes me feel a big unhappy… maybe 1.5.1 will bring what I hoped to become reality with 1.5…

I wouldn’t be suprised if the open-gl support sucks when 1.5.0 is released, since it feels like most new features have sucked in the initial release and then got better in the x.x.x releases. ::slight_smile:

[quote]but they plan to ship it on 30. spetember, this is what makes me feel a big unhappy… maybe 1.5.1 will bring what I hoped to become reality with 1.5…
[/quote]
Well, 1.4.x networking was entirely unusable until 1.4.1, and mostly unusable until 1.4.2. And there are other parts of 1.4.x that didn’t work at all until 1.4.2_03 or later (e.g. the JVM would crash immediately if yhou tried to run it chroot’d).

So…I wouldn’t hold out hopes for 1.5.0 being a replacement for 1.4.2_05 (especially with an _06 coming…)

Hmm, right, Networking under 1.4.0 was somewhat buggy, even the old-io classes had some strange behaviour, however now its quite stable.

What I need from java is a faster startup, I am applet/webstart-developer an my customers are always angry that java needs 15-30sec to come up and again 20secs to load the classes.

hmm…

However one sice does not fit all and I really love java for beeing so universal. Hmm…, well java is cool, i think…at least cause theres a non-working gl-pipeline g

lg Clemens

The new 1.5 starts up considerably faster than 1.4.x. Shame the server VM doesn’t.

Cas :slight_smile:

[quote]Shame the server VM doesn’t.
[/quote]
“What server VM?”, I hear your customers ask :stuck_out_tongue:

I could give my customers the server VM without them ever knowing, except it adds another meg to the downloads, halves startup time, and only gives me a 20% framerate boost… which is irrelevant on machines over 700Mhz or so as I’m fillrate limited by then…

Cas :slight_smile:

oooo and call it the Turbo Charged version! I’d click it :wink:

Hmm, only “20% framerate boost” to name it the same way you did means that the jvm got for your operations 20% faster, I think this is really very much.

The server-vm is named server-vm because it runs on servers which are typically shut down every month or so, otherwise it maybe would have been called game-vm, which starts fast, has a low footprint and is fast++…

Be happy with the new client-vm, its realy good, well, except some bugs…

It’s merely “acceptable” performance-wise. Only the server VM can really compete with C++ but fortunately I don’t target the very upper reaches of processor power :slight_smile:

Cas :slight_smile:

I contacted the nvidia-bug support, namely the follwing person: aritger AT nvidia D0T com

They told me that sun has never contacted they because of driver problems or something like this. They even did not know that there is a huge performance problem.

If a Java2D-engineer working at SUN reads this, it would be cool if both could contact each other, I think SUN has a very bid administration-overhead many things take much time.

lg Clemens