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
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.
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