[OpenJDK 2D-Dev] <AWT Dev>  Review Request: JDK-8041900 [macosx] Java forces the use of discrete GPU
Sergey.Bylokhov at oracle.com
Mon Oct 19 13:36:55 UTC 2015
Please review an updated version of the fix:
This version fix the problem of incorrect scale under retina display
after gpu is switched. The problem is that we use Quartz based
API(displayid+CGDisplayRemoveReconfigurationCallbac) to handle update of
gpu, but in this callback the information about a current screen in
[NSScreen screens] can be outdated and we cannot properly get the scale
factor of the new device.
There are two options to fix the problem:
- Use cocoa based
api+NSApplicationDidChangeScreenParametersNotification. But currently
most of our methods uses displayid and quartz.
- Postpone the callback for one iteration and wait when [NSScreen ..]
will be updated.
The second approach is selected since the fix will be backported to 8.
On 02.08.15 21:58, Sergey Bylokhov wrote:
> Hi, Denis.
> On 27.05.15 18:08, Denis Fokin wrote:
>> Hi, Sergey,
>> Basically, you should close all apps that can switch the vc including
>> the utility for switching video cards. Make sure in About This Mac ->
>> Displays that the integrated card is enabled. Start an application
>> with the patched version of Java. Check About This Mac -> Displays.
>> Integrated video card should be still active.
> These steps are not enough. additionally this should be done also
> (tested on Idea/JEdit and some other applications):
> - All old jdk should be removed
> - The patched jdk should be re/installed
> - The application should be reinstalled and to Info.plist these lines
> should be added:
> - The fix doesn't work for applets, javapanel, javaws, and also with
> applications which are running via command line (./bin/java -jar xxx).
> Not sure that it can be fixed.
> - It also does not work for some bundled applications which contain
> NSSupportsAutomaticGraphicsSwitching in the Info.plist. Netbeans for
> example. This should be investigated. But for now the fix looks fine.
>>> 27 мая 2015 г., в 17:30, Sergey Bylokhov <Sergey.Bylokhov at oracle.com>
>>> Hi, Denis.
>>> Can you describe the steps on how to test it. On my mac it still
>>> change the vc.
>>>> On 27.05.15 17:16, Denis Fokin wrote:
>>>> Please review the fix for jdk9
>>>> The fix allows do not force discrete video card usage on MacBook Pro
>>>> models with two video cards. I have tested the fix on several MPBs.
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8041900
>>>> Webrev: http://cr.openjdk.java.net/~denis/8041900/webrev.00
>>> Best regards, Sergey.
Best regards, Sergey.
More information about the 2d-dev