Veröffentlichung von Wayland-Protocols 1.38

Die Veröffentlichung des Wayland-Protokollpakets 1.38, das eine Reihe von Protokollen und Erweiterungen enthÀlt, die das grundlegende Wayland-Protokoll ergÀnzen und die erforderlichen Funktionen zur Erstellung von Komposit-Servern und Benutzerumgebungen bieten.

Alle Protokolle durchlaufen drei Phasen - Entwicklung, Test und Stabilisierung. Nach Abschluss der Entwicklungsphase (Kategorie „unstable“) wird das Protokoll in den Branch „staging“ verschoben und offiziell in das Paket wayland-protocols aufgenommen. Nach Abschluss der Tests wird es in die Kategorie stabiler Protokolle verschoben. Protokolle aus der Kategorie „staging“ können bereits in Komposition-Servern und Clients verwendet werden, in denen die damit verbundenen Funktionen benötigt werden. Im Gegensatz zur Kategorie „unstable“ ist in „staging“ die EinfĂŒhrung von Änderungen, die die KompatibilitĂ€t brechen, untersagt, aber wenn wĂ€hrend der Tests Probleme und MĂ€ngel auftreten, kann ein neues signifikantes Protokoll oder eine andere Wayland-Erweiterung ersetzt werden.

In der neuen Version wurden zur Kategorie „staging“ Protokolle hinzugefĂŒgt:

  • xdg-system-bell — ermöglicht das Ausgeben eines Systemsignals, das beispielsweise als Warnung im Terminalemulator verwendet werden kann. Die Form der Signalgebung wird nach Ermessen des Compositing-Managers festgelegt, dies kann nicht nur Ton, sondern auch eine visuelle RĂŒckmeldung sein.
  • fifo — implementiert einen FIFO-Mechanismus (first in, first out) zur Verarbeitung der Aktualisierungswarteschlange fĂŒr den angezeigten Inhalt. Praktisch ermöglicht das Protokoll die Ausgabe unter Nutzung des Wartens auf das Ende der vertikalen Synchronisierung (vblank) anstelle von Callback-Aufrufen bei jeder Bereitschaft zur Anzeige eines neuen Frames, was das Problem der hohen GPU-Belastung bei Verwendung von VSync löst.
  • commit-timing — ermöglicht es, eine ZeitbeschrĂ€nkung an den Inhalt der OberflĂ€che zu binden (der Compositing-Server sollte Änderungen des Inhalts nach Möglichkeit innerhalb des angegebenen Zeitrahmens anzeigen, jedoch nicht frĂŒher).

Derzeit umfassen die wayland-protocols die folgenden stabilen Protokolle, die abwÀrtskompatibel sind:

  • „viewporter“ - ermöglicht es dem Client, Maßnahmen zur Skalierung und zum Zuschneiden der RĂ€nder einer OberflĂ€che auf der Serverseite durchzufĂŒhren.
  • „presentation-time“ - sorgt fĂŒr die Wiedergabe von Videos.
  • „xdg-shell“ - Schnittstelle zur Erstellung und Interaktion mit OberflĂ€chen wie Fenstern, die es ermöglicht, sie auf dem Bildschirm zu verschieben, zu minimieren, zu maximieren, die GrĂ¶ĂŸe zu Ă€ndern usw.
  • „linux-dmabuf“ - ermöglicht die gemeinsame Nutzung mehrerer Grafikkarten mittels der DMA-BUF-Technologie (erlaubt die Erstellung von wl_buffer auf Basis von DMA-BUF).
  • „tablet“ — Eingabeverarbeitung von Grafiktabletts.

Protokolle, die im Branch „staging“ getestet werden:

  • drm-lease – bietet die benötigten Ressourcen zur Erstellung eines stereoskopischen Bildes mit unterschiedlichen Puffern fĂŒr das linke und das rechte Auge bei der Ausgabe auf Virtual-Reality-Headsets.
  • «ext-session-lock» – definiert Mittel zur Sperrung einer Sitzung, beispielsweise wĂ€hrend der AktivitĂ€t des Bildschirmschoners oder der Anzeige eines Authentifizierungsdialogs.
  • «single-pixel-buffer» – ermöglicht die Erstellung von Ein-Pixel-Puffern, die vier 32-Bit RGBA-Werte enthalten.
  • «xdg-activation» – ermöglicht die Übertragung des Fokus zwischen verschiedenen primĂ€ren OberflĂ€chen (zum Beispiel kann eine Anwendung den Fokus auf eine andere ĂŒbertragen).
  • content-type – ermöglicht es Clients, Informationen ĂŒber den angezeigten Inhalt zu ĂŒbermitteln, die zur Optimierung des Verhaltens in Bezug auf den Inhalt verwendet werden können, beispielsweise zur Festlegung spezifischer DRM-Eigenschaften wie «content type». UnterstĂŒtzt werden folgende Inhaltstypen: none (keine Informationen ĂŒber den Datentyp), photo (Ausgabe digitaler Fotos, die minimale Verarbeitung erfordert), video (Video oder Animation, die eine genauere Synchronisation erfordert, um Ruckler zu vermeiden) und game (Start von Spielen, die eine Ausgabe mit minimaler Verzögerung erfordern). zu einem Server ext-idle-notify – ermöglicht es Kompositservern, den Clients Benachrichtigungen ĂŒber die InaktivitĂ€t des Benutzers zu ĂŒbermitteln, was zur Aktivierung zusĂ€tzlicher Energiesparmodi nach einer bestimmten InaktivitĂ€tszeit verwendet werden kann.
  • tearing-control – ermöglicht die Deaktivierung der vertikalen Synchronisation (VSync) mit vertikalen RĂŒcklaufimpulsen in Fullscreen-Anwendungen, die zum Schutz vor Tearing bei der Ausgabe verwendet wird. In Multimedia-Anwendungen sind Artefakte durch Tearing ein unerwĂŒnschter Effekt, wĂ€hrend in Spielanwendungen mit Artefakten hinzunehmen ist, wenn die BekĂ€mpfung zu zusĂ€tzlichen Verzögerungen fĂŒhrt.
  • ext-foreign-toplevel-list – ermöglicht den Zugriff auf Informationen ĂŒber OberflĂ€chen, die auf der obersten Ebene (toplevel) platziert sind und die das Anheften von Fenstern ĂŒber anderen Inhalten ermöglichen, beispielsweise zur Anbindung eigener Panels und Fensterschalter.
  • ext-foreign-toplevel-list – ermöglicht den Zugriff auf Informationen ĂŒber OberflĂ€chen, die auf der obersten Ebene (toplevel) platziert sind und die das Anheften von Fenstern ĂŒber anderen Inhalten ermöglichen, beispielsweise zur Anbindung eigener Panels und Fensterschalter.
  • security-context — ermöglicht die Identifizierung von Clients, die Sandbox-Isolation verwenden. Der Client kann eine neue Verbindung zu einem Composite-Server auf Basis von Wayland registrieren und einen Sicherheitskontext anhĂ€ngen, wonach der Composite-Manager die verfĂŒgbaren Möglichkeiten fĂŒr die hergestellte Verbindung gemĂ€ĂŸ dem angegebenen Sicherheitskontext einschrĂ€nkt.
  • cursor-shape — eine alternative Methode zur Anpassung des Aussehens des Cursors, die auf der Übertragung einer Reihe von Cursorbildern basiert, anstatt an einer OberflĂ€che (wl_surface) gebunden zu sein.
  • „ext-transient-seat“ — dient der Erstellung von vorĂŒbergehenden unabhĂ€ngigen Sitzungen (seat), die fĂŒr die Nutzung zusammen mit virtuellen EingabegerĂ€ten ausgelegt sind. Beispielsweise bei der Umsetzung der Möglichkeit, sich mit einem entfernten Desktop kann das Protokoll fĂŒr jeden Benutzer eine separate Sitzung mit einer virtuellen Tastatur und Maus ermöglichen.
  • „xdg-toplevel-drag“ — erweitert den „Drag & Drop“-Mechanismus um die Möglichkeit, Fenster oberster Ebene an Bewegungsoperationen anzuhĂ€ngen, was beispielsweise fĂŒr das Drag & Drop von Symbolleisten oder Browser-Tabs verwendet werden kann. Das neue Protokoll ermöglicht es, abtrennbare Teile eines Fensters zu erstellen, die beim Drag & Drop aus diesem Fenster neue Fenster werden und ĂŒber bestehenden Fenstern bewegt werden können, bevor sie wieder angehĂ€ngt werden.
  • „xdg-dialog“ — ermöglicht es, OberflĂ€chen oberster Ebene Merkmale zuzuweisen, die spezifisch fĂŒr Dialogfenster sind, zum Beispiel können modale Dialoge erstellt werden, die die Interaktion des Benutzers mit dem restlichen Teil der OberflĂ€che blockieren.
  • „linux-drm-syncobj“ — bietet Werkzeuge fĂŒr die explizite Synchronisierung von Buffern mithilfe von DRM-Synchronisierungsobjekten (Direct Rendering Manager). Es wird erwartet, dass das vorgeschlagene Protokoll beim Synchronisieren von Render-Operationen im Buffer die Arbeit mit Grafikkarten-APIs wie Vulkan und OpenGL verbessert (die Implementierung basiert auf Handlern in Treibern). Das neue Protokoll ermöglicht es, sicherzustellen, dass die Render-Operation im Buffer abgeschlossen ist, bevor der Composite-Manager diesen Buffer anzeigt.
  • alpha-modifier, der es Kunden ermöglicht, den Transparenzgrad der OberflĂ€che zu Ă€ndern und die VorgĂ€nge zur GewĂ€hrleistung der Transparenz an den Compositing-Server auszulagern, der diese VorgĂ€nge dann an KMS weiterleiten kann.
  • xdg-toplevel-icon — bindet das Symbol an das Fenster der oberen Ebene.
  • ext-image-capture-source und ext-image-copy-capture — organisieren die Erfassung von Inhalten, die auf dem Bildschirm angezeigt werden.

Protokolle, die im „unstable“-Zweig entwickelt werden:

  • „fullscreen-shell“ — Steuerung des Vollbildmodus.
  • „input-method“ — Verarbeitung von Eingabemethoden.
  • «idle-inhibit» — Verhinderung des Starts des Bildschirmschoners.
  • «input-timestamps» — Zeitstempel fĂŒr Eingabeereignisse.
  • «keyboard-shortcuts-inhibit» — Verwaltung der Anheftung von Tastenkombinationen und Hotkeys.
  • «linux-explicit-synchronization» — Linux-spezifischer Mechanismus zur Synchronisierung von Puffern in Bezug auf OberflĂ€chen.
  • «pointer-gestures» — Verwaltung von Touchscreen-Eingaben.
  • «pointer constraints» — EinschrĂ€nkungen fĂŒr Zeiger (Sperre).
  • «primary-selection» — GewĂ€hrleistet analog zu X11 die FunktionalitĂ€t des primĂ€ren Clipboards (primary selection), dessen Informationen gewöhnlich mit der mittleren Maustaste eingefĂŒgt werden.
  • «relative pointer events» — relative Zeigereignisse.
  • «text-input» — Organisation der Texteingabe.
  • «xdg-foreign» — Schnittstelle zur Interaktion mit OberflĂ€chen eines 'benachbarten' Clients.
  • «xdg-decoration» — Zeichnung von Fensterdekorationen auf der Serverseite.
  • «xdg-output» — zusĂ€tzliche Informationen ĂŒber die Videoausgabe (verwendet fĂŒr fractional scaling).
  • «xwayland-keyboard-grab» — Erfassen von Eingaben in XWayland-Anwendungen.

ZusĂ€tzlich kann das Angebot eines Mitarbeiters von Valve hervorgehoben werden, eine weitere Phase zur Förderung neuer Wayland-Protokolle – „experimental“ – hinzuzufĂŒgen, die die HĂŒrden fĂŒr die Integration von Protokollen in das Wayland-Protocols-Paket senken und deren Implementierung beschleunigen sollte. Derzeit erfordert das Erreichen der „staging“-Phase fĂŒr ein Protokoll die Bildung eines UnterstĂŒtzungsteams und eine bestimmte Anzahl von BestĂ€tigungen (ACK) von den Begutachtern. In der „experimental“-Phase wird vorgeschlagen, das Protokoll nicht durch das Einholen von BestĂ€tigungen, sondern aufgrund des Fehlens von EinsprĂŒchen (NACK) wĂ€hrend einer zweiwöchigen Begutachtungsphase zu akzeptieren. Bei Bedarf können die Begutachter auch die Diskussion um weitere zwei Wochen verlĂ€ngern, indem sie den Status „WAIT“ festlegen.

In der „experimental“-Phase wird zudem vorgeschlagen, die EinfĂŒhrung von inkompatiblen Änderungen und die HinzufĂŒgung von „rohen“ Protokollen zuzulassen, die schrittweise auf das erforderliche Niveau gebracht werden können. Dadurch soll die „experimental“-Phase es ermöglichen, neue Prototypen von Protokollen schnell an die Entwickler zu ĂŒbermitteln, deren Implementierung in bestehenden Projekten zu fördern und Feedback von Anwendern zu erhalten. Der vorgeschlagene Prozess soll die Protokollentwickler von langen Diskussionen und BĂŒrokratie befreien, bevor sie in das Wayland-Protocols-Paket aufgenommen werden. So wurden beispielsweise die in dieser Veröffentlichung akzeptierten Protokolle xdg-system-bell, fifo und commit-timing ĂŒber ein Jahr lang diskutiert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4