RFR: 8305578: X11GraphicsDevice.pGetBounds() is slow in remote X11 sessions

Nikita Gubarkov duke at openjdk.org
Wed Apr 5 15:00:17 UTC 2023


On Wed, 5 Apr 2023 08:19:50 GMT, Maxim Kartashev <mkartashev at openjdk.org> wrote:

> Getting bounds of a `GraphicsDevice` and insets of a screen are fairly frequent operations. When working over the network (remote X session), those can take several *seconds* to complete, introducing repeated freezes even when typing in an editor feels only slightly sluggish.
> 
> On the other hand, neither bounds nor insets change very often - if at all - during the lifetime of an application. So caching their values seems like a natural solution to the problem. The caches need to be reset only when there's a possibility of change in the screens configuration.
> 
> A similar patch has been living in [JetBrains Runtime](https://github.com/JetBrains/JetBrainsRuntime/) for well over a year.

I am currently working on a patch for per-monitor scale on Linux and this feature is a crucial dependency for me.
Having independent monitor scales require changing userspace conversion function the way it's done on Windows, so that it depends on screen bounds, so repeatedly getting fresh bounds on each scaleUpX/scaleUpY/scaleDownX/scaleDownY call is unacceptable.

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

PR Comment: https://git.openjdk.org/jdk/pull/13346#issuecomment-1497632713



More information about the client-libs-dev mailing list