Hi Davide,
As both Thiago and Johan both mentioned, JavaFX is supported on Wayland
using XWayland. This is the same way that AWT in the core JDK is
supported on Wayland. Your JavaFX applications should run fine on
Wayland, and if they don't, it's a bug that we should fix.
Longer term, there is value in switching to pure Wayland, both for AWT
and for JavaFX, but you shouldn't see any difference in how your
application behaves. Some windowing operations might perform better,
depending on how the pure Wayland port is ultimately implemented, but
your application should otherwise run the same as it does now.
-- Kevin
On 12/1/2024 7:08 AM, Johan Vos wrote:
Hi,
I had this high on my list a couple of years ago, but because of
XWayland I didn't feel the urgent need to work on it, so it dropped a
bit on my priority list. Thiago did great experimental work in this
area, and I should raise Wayland higher on my list again. It's
something I would love to spend more time on, it's just that there are
often things bumping on the stack that require "urgent" attention.
- Johan
On Sun, Dec 1, 2024 at 1:32 PM Thiago Milczarek Sayão
<thiago.sa...@gmail.com> wrote:
I don’t officially speak on this matter, nor will I attempt to
answer your question directly, as I’m unaware of any internal
company efforts in this area. However, it would be beneficial to
have a centralized resource to track ongoing efforts, ensuring we
avoid duplicating work that might otherwise go to waste.
That said, I’ve observed some progress in improving XWayland (*),
and I’ve personally tested it and submitted bug fixes. Efforts
have also been made to enable Robot to work with XWayland using
PipeWire, which is a great step forward.
(*) XWayland is the compatibility layer that allows X11
applications to run on Wayland.
Creating a simple state-based display using the pure Wayland
protocol is relatively straightforward (specially with Java 22 and
FFM). However, implementing all the necessary details for a fully
functional and feature-complete Wayland backend is a substantial
endeavor. One challenge, for instance, is that Wayland’s design
choices intentionally avoid certain features (like not having a
global cursor position and not allowing window management operations).
I submitted a pull request to enable EGL on Prism ES2 with Wayland
in mind. This enhancement allows for GL rendering using EGL, which
is a critical requirement for a Wayland compositor.
I also conducted some experiments and managed to display a window
using only the Wayland protocol (*) in Java, leveraging |jextract|
and the Foreign Function & Memory (FFM) API. However, this is far
from achieving a fully functional Wayland Glass backend.
(*) Wayland is just a specification, many compositors implement it.
-- Thiago.
Em dom., 1 de dez. de 2024 às 08:43, Davide Perini
<perini.dav...@dpsoftware.org> escreveu:
As title.
It seems that JavaFX is not fully compliant with Linux Wayland.
Is there an ETA for the complete wayland support?
Thanks