RFR: 8251854: [macosx] Java forces the use of discrete GPU
Sergey Bylokhov
serb at openjdk.java.net
Tue Nov 10 08:31:04 UTC 2020
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
-------------
Commit messages:
- Initial fix
Changes: https://git.openjdk.java.net/jdk/pull/1139/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1139&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8251854
Stats: 6 lines in 3 files changed: 6 ins; 0 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/1139.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1139/head:pull/1139
PR: https://git.openjdk.java.net/jdk/pull/1139
More information about the build-dev
mailing list