[OpenJDK 2D-Dev] <AWT Dev> [9] Review Request: JDK-8041900 [macosx] Java forces the use of discrete GPU
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Tue Oct 20 08:14:42 UTC 2015
The fix looks good to me.
On 10/19/2015 4:36 PM, Sergey Bylokhov wrote:
> Hello.
> Please review an updated version of the fix:
> http://cr.openjdk.java.net/~serb/8041900/webrev.00
>
> 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.
Does it have sense to revisit the fix to use the Cocoa based API in
JDK 9 only after the fix?
Thanks,
Alexandr.
>
> 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:
>> <key>NSSupportsAutomaticGraphicsSwitching</key>
>> <true/>
>>
>> - 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
>>>>> <http://cr.openjdk.java.net/%7Edenis/8041900/webrev.00>
>>>>
>>>> --
>>>> Best regards, Sergey.
>>>>
>>
>>
>
>
More information about the 2d-dev
mailing list