Multi monitor HIDPI in X11 compatibility mode

Nikita Gubarkov nikita.gubarkov at jetbrains.com
Wed Apr 5 14:43:57 UTC 2023


There's a branch with patch for multimonitor HIDPI support on XWayland with
many issues found in JBR fixed, please see
https://github.com/openjdk/wakefield/tree/yaaz_hidpi_compatibility

On Tue, Feb 14, 2023 at 5:16 AM Philip Race <philip.race at oracle.com> wrote:

> > AFAIU mainline currently mostly works with XWayland, right?
>
> Mainline only supports X.org.
>
> There is no "mostly", it either works 100%, or it doesn't work.
> Meaning 1 JCK test failure out of (say) 10,000 tests means JCK fails. No
> argument possible.
>
> So, no it does not help mainline until Wakefield integrates XWayland
> support.
>
> -phil
>
> On 2/13/23 1:22 PM, Nikita Gubarkov wrote:
>
> It doesn't require Wayland in order to run as before,
> but if Wayland is available at runtime (dlsym), it will use it to get
> per-monitor scaling.
> AFAIU mainline currently mostly works with XWayland, right?
> If so, probably this can even help the mainline, not only sandbox?
>
> And yes, it still reports integer scales, I didn't find a way to get
> fractional scaling,
> Wayland protocol itself has only integer wl_output::scale.
>
> On Fri, Feb 10, 2023 at 10:48 PM Philip Race <philip.race at oracle.com>
> wrote:
>
>> If it needs Wayland, then it might be something that should go into the
>> sandbox
>> for the Wakefield project ... perhaps that is what you are intending here
>> ?
>> Until that project adds support back into main line for Wayland's X11
>> compat
>> mode we only support running on X.org, so there won't be a wayland
>> server to query,
>> so this fix can't help mainline today.
>>
>> I presume this code would still report integer scales ?
>> My understanding is Wayland by design does not support fractional scales.
>>
>> -phil.
>>
>> On 2/2/23 2:47 PM, Nikita Gubarkov wrote:
>> > JetBrains Runtime has support for per-monitor scaling in X11 mode
>> > implemented a few months ago.
>> >
>> > At first I tried to use the GTK library for reading the scales as
>> > suggested in https://bugs.openjdk.org/browse/JDK-8260270, but in a
>> > multi-monitor environment it is always returning scale of the main
>> > display when running with X11 backend.
>> > The final solution was to connect to Wayland just to read the scaling
>> > values and then do a huge refactoring to make AWT's X11-related code
>> > respect these individual scaling values.
>> > For coordinate conversions I took the same approach that was used in
>> > Windows - https://github.com/openjdk/jdk/pull/375
>> > There were some issues that I was unable to solve, like the window
>> > title bar is always scaled with the main monitor's scale no matter
>> > what monitor the window is on, the same with mouse cursor when it's
>> > over the window, but overall it seems to work.
>> >
>> > I can try porting this into OpenJDK and create a PR if needed.
>> >
>> > JBR issue: https://youtrack.jetbrains.com/issue/JBR-5208
>> > Code:
>> >
>> https://github.com/JetBrains/JetBrainsRuntime/commit/bf073b92b8803fb45c5934127b8f4a9f58e508a1
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/wakefield-dev/attachments/20230405/555f05c3/attachment.htm>


More information about the wakefield-dev mailing list