pchiusano
pchiusano

Reputation: 785

Is there a way to detect if Java FX is using hardware acceleration?

And related to that, is there a way to force Java FX to use hardware acceleration and bomb if it is unable to?

Upvotes: 4

Views: 7222

Answers (5)

HIRUKAWA Ryo
HIRUKAWA Ryo

Reputation: 76

For software renderers, the SCENE 3D feature is disabled.

if(Platform.isSupported(ConditionalFeature.SCENE3D)) {
    // hardware accelerated renderer
} else {
    // software renderer
}

Upvotes: 0

pzatschl
pzatschl

Reputation: 3

It is possible to set your graphics pipeline using the -Dprism.order=es2 VM-option. You can replace es2 for the desired pipeline (d3d, sw, j2d).

Upvotes: 0

rustyx
rustyx

Reputation: 85481

You can also try this hack

@SuppressWarnings("restriction")
static String getCurrentGraphicsPipeline() {
    return com.sun.prism.GraphicsPipeline.getPipeline().getClass().getName();
}

If you get back "com.sun.prism.sw.SWPipeline" then you're using software acceleration. All other values will mean that probably some form of hardware acceleration is being used.

Upvotes: 2

zIronManBox
zIronManBox

Reputation: 5067

If you are using eclipse as IDE, then you need to pass these VM arguments. You can add these VM arguments in the run Configurations.

Put these arguments there: -Dprism.verbose=true

Have a look at the image for more information

Upvotes: 1

pchiusano
pchiusano

Reputation: 785

Just found out:

You can run with -Dprism.verbose=true which will print what graphics pipeline it uses. "sw" or "j2d" for software and "d3d" or "es2" for hardware accelerated.

Upvotes: 15

Related Questions