Как отключить или обойти ускорение аппаратной графики (Prism) в JavaFX

ОС: OSX Mountain Lion.

Система: Virtual BOX 4.2.6.

Java: 1.7.0.40-ea-b34

Я хочу отключить аппаратное ускорение для моего приложения JAVAFX, потому что в моей системе (Mac) нет ускорения HW. Поэтому, когда нет ускорения HW, я получаю фатальную ошибку при выполнении моего приложения JAVAFX. Ошибка, связанная с "Prism Engine конвейер", и это происходит, когда java пытается выполнить собственные библиотеки openGL. Поэтому я хочу отключить призму.

Я вижу, что есть некоторые vm args, которые контролируют поведение призм, как.. Dprism.forceGPU = истина;

Есть ли что-нибудь вроде выше, чтобы отключить призм или запрос openGL?

Неустранимая ошибка (коды, связанные с 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 

Ответы

Ответ 1

Посмотрите этот форум: https://forums.oracle.com/message/11018975

Добавьте это к выполнению java:

-Dprism.order=j2d

Это должно сделать трюк.

Ответ 2

Графический конвейер j2d довольно устарел в JavaFX 8, поэтому лучше использовать программный конвейер: -Dprism.order=sw. Чтобы убедиться, что вы на самом деле используете его, вы можете включить ведение журнала: -Dprism.verbose=true