-
Bug
-
Resolution: Fixed
-
P4
-
dev, 11, 17
-
b25
-
generic
-
linux
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8351460 | 17.0.16-oracle | Renjith Kannath Pariyangad | P4 | Resolved | Fixed | master |
When Java GUI is displayed over a slow network connection (either directly via 'export DISPLAY' or with 'ssh -Y'), a significant amount of time is spent in a native method called sun.awt.X11GraphicsDevice.pGetBounds(); the method is essentially the backbone of X11GraphicsDevice.getBounds(). This leads to noticeable freezes (up to several seconds) at random intervals.
There are other scenarios where the bounds of a graphics device may become a performance bottleneck:
* there are tools the emulate many monitors such as [1] and, when the number of monitors is large enough, can be slow in responding,
* in an XWayland environment, when several monitors have different scaling factors their bounds are used for calculating the correct position and size of windows (this part is under the umbrella of the Wakefield project). This operation is so frequent that it puts a lot of pressure on X11GraphicsDevice.getBounds().
[1] https://github.com/phillipberndt/fakexrandr
There are other scenarios where the bounds of a graphics device may become a performance bottleneck:
* there are tools the emulate many monitors such as [1] and, when the number of monitors is large enough, can be slow in responding,
* in an XWayland environment, when several monitors have different scaling factors their bounds are used for calculating the correct position and size of windows (this part is under the umbrella of the Wakefield project). This operation is so frequent that it puts a lot of pressure on X11GraphicsDevice.getBounds().
[1] https://github.com/phillipberndt/fakexrandr
- backported by
-
JDK-8351460 X11GraphicsDevice.pGetBounds() is slow in remote X11 sessions
-
- Resolved
-
- causes
-
JDK-8308875 java/awt/Toolkit/GetScreenInsetsCustomGC/GetScreenInsetsCustomGC.java failed with 'Cannot invoke "sun.awt.X11GraphicsDevice.getInsets()" because "device" is null'
-
- Closed
-
- links to
-
Commit openjdk/jdk/d7245f70
-
Review openjdk/jdk/13346
-
Review(master) openjdk/jdk17u-dev/3336