Skip to main content

BufferStrategy & acceleration

2 replies [Last post]
commanderkeith
Offline
Joined: 2005-10-11
Points: 0

Hi,

I posted this at:
http://www.javagaming.org/forums/index.php?topic=13604.0
and was told to ask you guys about this.

I use a big VolatileImage to pre-render the static background of my game, and this image is painted onto a 2-buffer BufferStrategy since this improves performance (on windows the FPS nearly doubled).

Strangely though, on some computers the VolatileImage seems to be unaccelerated but the BufferStrategy is. When this happens the FPS is only about 11 when on most computers it is 70 (This must be because it takes ages to paint the unaccelerated VolatileImage to the BufferStrategy). I also get the following results:

bufferStrategy.getCapabilities().getFrontBufferCapabilities().isAccelerated() returns true
bufferStrategy.getCapabilities().getBackBufferCapabilities().isAccelerated() returns true
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getAvailableAcceleratedMemory() returns 0 before and after I create the BufferStrategy or the big VolatileImage.

I assume that the VolatileImage is not accelerated since there is no accelerated memory, but why then is the BufferStrategy accelerated?
Thanks,
Keith

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Dmitri Trembovetski

Hi Keith,

here's a copy of my reply on javagaming.org:

What java version are you seeing this on? Also, what OS/video board?
Is this full-screen or windowed application

I could imagine a situation where buffer strategy takes all
available video memory so there's not enough left for a large
volatile image..

Thanks,
Dmitri

On Sun, May 07, 2006 at 07:55:37PM -0700, java2d@javadesktop.org wrote:
> Hi,
>
> I posted this at:
> http://www.javagaming.org/forums/index.php?topic=13604.0
> and was told to ask you guys about this.
>
> I use a big VolatileImage to pre-render the static background of my game, and this image is painted onto a 2-buffer BufferStrategy since this improves performance (on windows the FPS nearly doubled).
>
> Strangely though, on some computers the VolatileImage seems to be unaccelerated but the BufferStrategy is. When this happens the FPS is only about 11 when on most computers it is 70 (This must be because it takes ages to paint the unaccelerated VolatileImage to the BufferStrategy). I also get the following results:
>
> bufferStrategy.getCapabilities().getFrontBufferCapabilities().isAccelerated() returns true
> bufferStrategy.getCapabilities().getBackBufferCapabilities().isAccelerated() returns true
> GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getAvailableAcceleratedMemory() returns 0 before and after I create the BufferStrategy or the big VolatileImage.
>
> I assume that the VolatileImage is not accelerated since there is no accelerated memory, but why then is the BufferStrategy accelerated?
> Thanks,
> Keith
> [Message sent by forum member 'commanderkeith' (commanderkeith)]
>
> http://forums.java.net/jive/thread.jspa?messageID=111357
>
> ===========================================================================
> To unsubscribe, send email to listserv@java.sun.com and include in the body
> of the message "signoff JAVA2D-INTEREST". For general help, send email to
> listserv@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

commanderkeith
Offline
Joined: 2005-10-11
Points: 0

Thanks Dmitri,

I've posted the details on the javagaming.org thread.

Keith