RFR: 8354415: [Ubuntu25.04] api/java_awt/GraphicsDevice/indexTGF.html#SetDisplayMode - setDisplayMode_REFRESH_RATE_UNKNOWN fails: Height is different on vnc

Alexander Zvegintsev azvegint at openjdk.org
Fri Jul 11 15:54:48 UTC 2025


On Linux, we are currently use XRRSetScreenConfigAndRate to change the display mode. This works in most cases, except for some VNC-configured hosts, where the display change may not occur.
One of the conformance tests fails on these hosts.

It was discovered, that the xrandr utility app works fine on these hosts and uses the Crtc and Output Randr APIs, which provide more fine-grained control over display settings.

This changeset utilizes the Crtc and Output Randr APIs to change the display mode.

Currently, changing the display mode is only [available when running a single screen](https://github.com/openjdk/jdk/blob/a86dd56de34f730b42593236f17118ef5ce4985a/src/java.desktop/unix/classes/sun/awt/X11GraphicsDevice.java#L365).
This limitation remains, but we may remove it in the future. A separate issue [has been filed](https://bugs.openjdk.org/browse/JDK-8361968) for this purpose.

The `awt.x11useOldConfigDisplayMode` system property enables the old behavior. Perhaps there's a better name for it.

Testing looks good on VNC and local machines.

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

Commit messages:
 - initial

Changes: https://git.openjdk.org/jdk/pull/26268/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26268&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8354415
  Stats: 354 lines in 3 files changed: 346 ins; 1 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/26268.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26268/head:pull/26268

PR: https://git.openjdk.org/jdk/pull/26268


More information about the client-libs-dev mailing list