È attualmente possibile abilitare il chip grafico integrato del mac in un'applicazione Java?


C'è un modo per ottenere un'applicazione Java per utilizzare la GPU integrata, piuttosto che discreta, su un mac?

(Sono interessato a modi per spedire un'app che non spingerà il laptop Mac dell'utente in modalità discreta, piuttosto che modi per bloccare in modalità integrata sul mio laptop per tutte le applicazioni, come fa gfxCardStatus.)

Author: Joshua Goldberg, 2014-01-16

3 answers

Sfortunatamente, ciò che vuoi non è possibile usando Java 7.

Alcune fonti da tutto il web:

Hai già menzionato gfxCardStatus , ma questo sembra essere l'unico modo

Teoricamente è possibile disabilitare Il supporto OpenGL , tuttavia questo non è sufficiente per non attivarlo java ha bisogno di grafica discreta. Sembra che come parte della valutazione sull'opportunità o meno di utilizzare OpenGL, solletica la GPU e il mac decide che deve accendere la GPU discreta per la durata di tale applicazione.

Edit: sembra che nemmeno gfxCardStatus può impedire più l'interruttore .

 3
Author: Paul Wagland, 2015-10-16 16:01:42

C'è un'opzione speciale che deve essere specificata nelle Informazioni.file plist del programma di avvio dell'applicazione:

<key>NSSupportsAutomaticGraphicsSwitching</key><true/>

Questo dà un'applicazione Java la potenza di utilizzare la scheda integrata. Altrimenti il sistema utilizza la grafica discreta per impostazione predefinita. Sfortunatamente questa opzione non è inclusa nella distribuzione JVM standard di Oracle.


Aggiornamento a partire dal 2019-08-01: Il più recente macOS + Java generalmente disponibile oggi è: macOS 10.14.6 Mojave + Java Versione 8 Aggiornamento 221 Costruire 1.8.0_221-b11

L'impostazione di NSSupportsAutomaticGraphicsSwitching su TRUE impedisce infatti l'uso forzato dell'utilizzo discreto della GPU! Ma non per tutte le applicazioni Java! Ho provato questi:

Jdiskreport 1.4.1: Dopo aver aggiunto NSSupportsAutomaticGraphicsSwitching=TRUE al Info.plist si avvia quindi con la GPU interna e funziona normalmente!

Mente libera 1.0.1: Info.plist è stato spedito con NSSupportsAutomaticGraphicsSwitching=TRUE e NSHighResolutionCapable=TRUE. Rimozione JVMRuntime=jdk1.7.0_45.jdk avvia l'applicazione con l'iGPU infatti, ma poi non funziona. Vedi l'avvio dialog ("Freemind 1.0.1": Inizializzazione di questo, quello, bla bla) fino a quando l'app non è pronta. Ma poi vedi solo il menu principale (lo stub dell'applicazione credo). Nessun file nuovo / recente aperto in una finestra. Non appena si desidera aprire / creare un nuovo file, la creazione di una finestra non riesce: Breve flash e il menu principale (lo stub dell'applicazione credo) ri-rende a breve. Chiederò a FreeMind cosa si può fare.

 2
Author: Thomas, 2019-08-01 11:33:15

Ho avuto un problema simile su Mac OS X 10.11.6 (15G1108) con l'app Arduino (basata su Java), usando sempre la scheda grafica ad alta potenza (esterna).

Il suggerimento di Thomas mi ha finalmente portato alle informazioni di Arduino.voce plis <key>NSHighResolutionCapable</key> originariamente impostata su <true/>. Impostandolo su <false/>, Arduino inizia bene utilizzando solo la scheda grafica integrata riducendo drasticamente il consumo energetico sul mio Macbook Pro retina!

(Java 8-Aggiornamento 111, Arduino 1.6.12)

 0
Author: Ulrich, 2016-11-05 19:29:27