Comment désactiver ou contourner l'accélération graphique matérielle (Prism) dans JavaFX


OS: OSX Lion de montagne.

Système: Boîte virtuelle 4.2.6.

Java: 1.7.0.40-ea-b34

Je veux désactiver l'accélération matérielle pour mon application JAVAFX car il n'y a pas d'accélération HW sur mon système (mac). Donc, quand il n'y a pas d'accélération HW, j'obtiens une erreur fatale lors de l'exécution de mon application JAVAFX. L'erreur liée à "Pipeline de moteur Prism" et cela se produit lorsque java essaie d'exécuter des bibliothèques natives OpenGL. Je veux donc désactiver le prisme.

Je vois qu'il y a des arguments de vm qui contrôlent le comportement du prisme comme.. Dprism.forceGPU=true;

Y a-t-il quelque chose comme ci-dessus pour désactiver la demande prism ou OpenGL?

L'erreur fatale (codes liés à OpenGL)

Stack: [0x000000016c8f9000,0x000000016c9f9000], sp=0x000000016c9f7f40, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libobjc.A.dylib+0x639f] objc_msgSend_fixup+0x5f
C [AppKit+0x28134c] -[NSOpenGLContext initWithFormat:shareContext:]+0xac
C [libprism-es2.dylib+0x4e9f] createContext+0x1b3
C [libprism-es2.dylib+0x4729] Java_com_sun_prism_es2_gl_mac_MacGLFactory_nInitialize+0xa2
j com.sun.prism.es2.gl.mac.MacGLFactory.nInitialize([I)J+0
j com.sun.prism.es2.gl.mac.MacGLFactory.initialize(Ljava/lang/Class;Lcom/sun/prism/es2/gl/GLPixelFormat$Attributes;)Z+73
j com.sun.prism.es2.ES2Pipeline.<clinit>()V+54 
Author: Lalith J., 2013-09-12

2 answers

Oeil à ce forum: https://forums.oracle.com/message/11018975

Ajoutez ceci à votre exécution java:

-Dprism.order=j2d

, ce Qui devrait faire l'affaire.

 11
Author: zenbeni, 2013-09-12 12:39:57

Le pipeline graphique j2d est en quelque sorte obsolète dans JavaFX 8, il est donc préférable d'utiliser le pipeline logiciel: -Dprism.order=sw. Pour vérifier que vous l'utilisez réellement, vous pouvez activer la journalisation: -Dprism.verbose=true

 24
Author: Petr, 2013-09-12 19:39:39