Java 2D performacje on fullscreen mode

Try this: http://www.2shared.com/file/2906657/598d3d4e/MyGameLibTest.html

OK, I think I can reproduce the problem now.

On my Nvidia 7900 GS board (1600x1200x32) I get 20 fps on 1.6.0_04 -
with the hw acceleration enabled. I get 60 (!) fps with
the ddraw/d3d pipeline disabled!

On 1.6.0_10 I always get 60fps (is the app throttled? since it’s
60fps with hw accel. disabled and enabled).

I ran the test with primitive count and noticed a tons
of unaccelerated copies.

I think one of the images you have for some reason could not
be accelerated. Either because of the bug in ImageIO (there
was a bug fixed in 6u10 and jdk7 which prevented some
images loaded with imageio from being accelerated), or
may be you did something else (like grabbed a data buffer or
a raster)?

I would suggest to comment out some of the drawImages
in your app to see which one is responsible.

From the tracing I see that this unaccelerated image or (images) is
copied right after a drawString and fillRect calls:


// ok  this is accelerated
sun.java2d.d3d.D3DTextureToSurfaceBlit::Blit("Direct3D Texture", AnyAlpha, "D3D render target")
sun.java2d.d3d.D3DTextureToSurfaceBlit::Blit("Direct3D Texture", AnyAlpha, "D3D render target")
sun.java2d.d3d.DelegateSwToTextureLoop::Blit(Any, SrcNoEa, "Direct3D Texture")
sun.java2d.loops.Blit::Blit(ByteIndexed, SrcNoEa, IntArgbPre)
sun.java2d.d3d.D3DTextureToSurfaceBlit::Blit("Direct3D Texture", AnyAlpha, "D3D render target")
sun.java2d.d3d.DelegateSwToTextureLoop::Blit(Any, SrcNoEa, "Direct3D Texture")
sun.java2d.loops.Blit::Blit(ByteIndexed, SrcNoEa, IntArgbPre)
sun.java2d.d3d.D3DTextureToSurfaceBlit::Blit("Direct3D Texture", AnyAlpha, "D3D render target")
D3DDrawGlyphs
D3DFillRect
// and this is not
sun.java2d.loops.Blit::Blit(IntRgb, SrcNoEa, IntRgb)
sun.java2d.loops.Blit::Blit(IntRgb, SrcNoEa, IntRgb)
.... // many more of these

Dmitri

Its a stupid idea, but maybe getFPS is wrong :smiley:

Actually, drawing some images should defintely be faster.