Java2D on integrated graphics?

Hi,

Could some kind soul provide information on how Java2D with opengl acceleration would perform on integrated graphics cards, say Intel X3100? I have done some research, but barely found any info at all. This could be because everyone already knows it is futile to develop anything on integrated graphics, but when Blizzard is making games like WoW using opengl which runs at 15-30 fps on the X3100, I can’t think it is too bad.

Here is the deal for me: I plan to buy a MacBook, which has the Intel X3100 integrated graphics. I plan to do some hobby coding in Java2D, basically an “asteroids” game or similiar. In the beginning I don’t plan to use any textures, but simply draw different kinds of polygones which will be transformed and moved. Since I don’t know much about Java2D yet (but I am experienced in Java, maths, physics) I am not sure what will go on the cpu, or what can be taken of the gpu with acceleration.

So I will be using integrated graphics, and Mac OS X hopefully. If anyone has some experience regarding this, and the limitations of Java2D on integrated graphics, I hope you will reply. :slight_smile:

Must of the time, I developpe on an old Dell machine with an Intel integrated graphic card.
I almost only use LWJGL and it works just fine (2D and 3D). When I use java2D, with the opengl pipeline, it is for tools. Well, I didn’t come across big performance problem with showcase in this forum (i didn’t pay too much attention if there were pure Java2D)

So long as it’s only 2D, not 3D, it should work fine. You just have to make sure your images are loaded the right way so that they get hardware accelerated.

I have not experience on doing 3D with java2D (but Legend of the Chambered work fine for me, so it seem it is not impossible).
For 2D, i’m pretty sure that there is no problem for a little game even without high optimization.
Hmmm It make me want to do some sort of java2D benchmark ;D

The current intel chips are (whisper it) not that bad actually. :slight_smile: They’ve got support for everything up to GL 1.3, as well as some of the more useful 1.4 extensions (like compressed textures). They’ll do multitexturing too. Which gives you quite a lot to play with really - the only thing obviously missing is proper pixel shaders. Performance-wise the triangle throughput isn’t bad (since it’ll use your CPU to do the transformations) but the fill rate does tend to suck a bit, so heavy blending and overdraw can hurt your framerate.

Thanks for your replies. :slight_smile: I get the feeling that an integrated graphics card is enough for my needs. I’ll focus more on interesting physics and events in my game, and not so much on graphics. If all goes well it will be more of an open universe game. Just don’t want to suddenly see that basic things like drawing more than 100 polygones on the screen causes trouble or something.

Just for the fun :wink:
There is no drawing optimazation (i only use a BufferedImage as a back buffer).

Benchmark

A8 is for 8b alpha channel, A1 transparency, A0 no transparency. Shape are 5 quadratic lines.

I have try to enable opengl pipeline and direct 3D pipeline but i not sure that it is the way it would be done :
OpenGL Direct3D

On a Celeron® 2.40GHz, 512mo RAM, Windows XP, Java 1.6, Intel® 82865G Graphics :

Results :
Simple line (500) : 58.6 fps
Antialiasing line (500) : 3.718563 fps
Simple text (500) : 152.8 fps
Antialiasing text (500) : 71.0 fps
Simple shape (50) : 75.8 fps
Antialisaing shape (50) : 4.968697 fps
Simple fill shape (50) : 38.9 fps
Antialisaing fill shape (50) : 4.915454 fps
Sprite 512x512 A8 (50) : 0.52677786 fps
Sprite 512x512 A1 (150) : 46.4 fps
Sprite 512x512 A0 (50) : 31.65252 fps
Sprite 256x256 A8 (50) : 30.051914 fps
Sprite 256x256 A1 (50) : 43.7 fps
Sprite 256x256 A0 (50) : 51.4 fps
Sprite 128x128 A8 (50) : 68.3 fps
Sprite 128x128 A1 (50) : 97.8 fps
Sprite 128x128 A0 (50) : 117.4 fps
Sprite 64x64 A8 (50) : 134.2 fps
Sprite 64x64 A1 (50) : 158.0 fps
Sprite 64x64 A0 (50) : 170.0 fps

If you want to do some performance tests just ask ;D

Ran them just for fun. Intel QuadCore Q6600, Geforce 8800GTS 320MB (OK im not intergrated but now you can compare :D)
Java build 1.6.0_10-beta-b23

Direct3D

Normal

[quote]Simple line (500) : 278.5 fps
Antialiasing line (500) : 9.157873 fps
Simple text (500) : 312.9 fps
Antialiasing text (500) : 115.6 fps
Simple shape (50) : 260.4 fps
Antialisaing shape (50) : 11.463317 fps
Simple fill shape (50) : 147.3 fps
Antialisaing fill shape (50) : 11.429139 fps
Sprite 512x512 A8 (50) : 0.9 fps
Sprite 512x512 A1 (150) : 134.8 fps
Sprite 512x512 A0 (50) : 166.9 fps
Sprite 256x256 A8 (50) : 60.5 fps
Sprite 256x256 A1 (50) : 100.2 fps
Sprite 256x256 A0 (50) : 245.8 fps
Sprite 128x128 A8 (50) : 145.7 fps
Sprite 128x128 A1 (50) : 205.3 fps
Sprite 128x128 A0 (50) : 334.4 fps
Sprite 64x64 A8 (50) : 270.4 fps
Sprite 64x64 A1 (50) : 315.4 fps
Sprite 64x64 A0 (50) : 381.2 fps
[/quote]