On Tue, 10 Nov 2020 08:19:13 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

> This is a review request for the bug particularly fixed some time ago:
> https://mail.openjdk.java.net/pipermail/2d-dev/2015-May/005425.html
> 
> In that review request it was found that the old fix does not work well in 
> all cases, see:
> https://mail.openjdk.java.net/pipermail/2d-dev/2015-August/005611.html
> 
> The current fix updates an embedded plist.info, so the java will not require
> discrete graphics by default, same as for any other applications. 
> 
> The discrete card will be used:
>  1. If macOS decided to enable it for some reason
>  2. If the java app sets/uses a full-screen window
>  3. If the user disable "automatic graphics switching" in the system 
> preferences
>  4. If an external monitor is connected to the laptop
> 
> In other cases, the integrated graphics will be used, which should be fine in 
> most cases since this graphic is used/tested in the mbp 13/etc. This is not 
> only about rendering performance but also about startup performance, on my 
> current new laptop mbp 16 + Cataline 10.15.7 the switching 
> discrete/integrated causes unexpected delays up to 10 seconds.
> 
> 
> Note that the new "metal" pipeline also does not require discrete graphics.
> 
> The documentation for NSSupportsAutomaticGraphicsSwitching:
> https://developer.apple.com/documentation/bundleresources/information_property_list/nssupportsautomaticgraphicsswitching
> 
> I'll create a release note after approval.
> 
> Performance numbers:
> https://mail.openjdk.java.net/pipermail/2d-dev/2020-August/010979.html
> Old review request:
> https://mail.openjdk.java.net/pipermail/2d-dev/2020-August/010973.html

I'm still somewhat unsure whether we want to do this in all cases. As mentioned 
offline, the discrete GPU will be unused (might as well not be there) for 
almost all Java applications when using a single screen. When the MacBook Pro 
is running on battery, this seems like a good thing, but when it is plugged in, 
it seems like we wasting the discrete GPU. It's too bad Apple doesn't provide a 
way for an application to hint whether they would like to use the discrete GPU 
if available.

I want to run some performance tests with JavaFX, since it will likely impact 
JavaFX applications.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1139

Reply via email to