Uitgave van Wayland-Protocols 1.38

De release van het pakket wayland-protocols 1.38 is gepubliceerd, dat een set protocollen en uitbreidingen bevat die het basisprotocol Wayland aanvullen en mogelijkheden bieden die nodig zijn voor het opbouwen van composietservers en gebruikersomgevingen.

Alle protocollen doorlopen drie fasen: ontwikkeling, testen en stabilisatie. Na de voltooiing van de ontwikkelingsfase (categorie 'unstable') wordt het protocol in de 'staging'-branch geplaatst en officieel opgenomen in de set wayland-protocols. Na de voltooiing van de testfase wordt het verplaatst naar de stabiele categorie. Protocollen uit de categorie 'staging' kunnen al worden gebruikt in composietservers en clients waar bijbehorende functionaliteit vereist is. In tegenstelling tot de categorie 'unstable' is het in 'staging' verboden om wijzigingen aan te brengen die de compatibiliteit verstoren, maar als er problemen of tekortkomingen worden ontdekt tijdens het testen, kan een aanzienlijke nieuwe versie van het protocol of een andere Wayland-uitbreiding worden vervangen.

In de nieuwe versie zijn de volgende protocollen aan de categorie 'staging' toegevoegd:

  • xdg-system-bell — maakt het mogelijk om een systeem signaal uit te geven, dat bijvoorbeeld kan worden gebruikt als waarschuwing in terminalemulatoren. De vorm van de signaaluitvoer wordt bepaald naar de voorkeur van de compositor, dit kan niet alleen geluid zijn, maar ook een visuele respons.
  • fifo — implementeert een FIFO-mechanisme (eerste gekomen, eerste gegaan) voor het verwerken van de wachtrij van de inhoudsupdate van de weergegeven oppervlakte. Praktisch gezien stelt het protocol gebruikers in staat om te wachten tot de verticale afrol voltooid is (vblank) in plaats van callback-aanroepen te gebruiken bij elke gereedheid om een nieuw frame weer te geven, wat het probleem van hoge belasting van de GPU bij gebruik van VSync oplost.
  • commit-timing — maakt het mogelijk om een tijdslimiet aan de inhoudsoppervlakte te koppelen (de composietserver moet de wijziging van de inhoud zo mogelijk doorvoeren binnen de opgegeven tijd, maar niet eerder).

Momenteel bevat wayland-protocols de volgende stabiele protocollen, die terugwaartse compatibiliteit waarborgen:

  • «viewporter» — stelt de client in staat om acties uit te voeren voor schaling en het bijsnijden van randen van oppervlakken aan de serverzijde.
  • 'presentation-time' - zorgt voor videoweergave.
  • «xdg-shell» — interface voor het creëeren en interageren met oppervlakken als ramen, waardoor ze kunnen worden verplaatst, geminimaliseerd, gemaximeerd, vergroot, enzovoort.
  • ‘linux-dmabuf’ - maakt het delen van meerdere grafische kaarten mogelijk via de DMA-BUF technologie (maakt het mogelijk om een wl_buffer op basis van DMA-BUF te creëren).
  • 'tablet' - organisatie van invoer van grafische tablets.

Protocollen die worden getest in de 'staging'-lijn:

  • drm-lease - biedt de benodigde middelen voor het vormen van een stereobeeld met verschillende buffers voor het linker en rechter oog bij weergave op virtual reality-headsets.
  • 'ext-session-lock' - defineert de middelen voor sessievergrendeling, bijvoorbeeld tijdens het werken met een screensaver of het weergeven van een authenticatiedialoog.
  • 'single-pixel-buffer' - maakt het mogelijk om een enkelpixelbuffers te creëren die vier 32-bits RGBA-waarden bevatten.
  • 'xdg-activation' - stelt het mogelijk om de focus tussen verschillende eerste-niveau oppervlakken over te dragen (bijvoorbeeld kan één toepassing met xdg-activation de focus op een andere overschakelen).
  • content-type — stelt cliënten in staat om informatie over de weergegeven inhoud door te geven, die gebruikt kan worden om het gedrag op basis van de inhoud te optimaliseren, bijvoorbeeld voor het instellen van specifieke DRM-eigenschappen, zoals 'content type'. Ondersteuning is verklaard voor de volgende inhoudstypen: none (geen informatie over het gegevenstype), photo (weergave van digitale foto's, vereist minimale verwerking), video (video of animatie, vereist nauwkeurigere synchronisatie om haperingen te voorkomen) en game (uitvoering van games, vereist weergave met minimale vertraging). server ext-idle-notify — stelt composietservers in staat om cliënten meldingen over gebruikersinactiviteit te sturen, wat kan worden gebruikt om extra energiebesparende modi te activeren na een bepaalde periode van inactiviteit.
  • tearing-control — maakt het mogelijk om verticale synchronisatie (VSync) met frame-drops uit te schakelen in volledig scherm applicaties, welke worden toegepast om het verschijnen van tearing bij de weergave te voorkomen. In multimedia-applicaties is het verschijnen van artefacten door tearing een ongewenst effect, maar in games kan men zich tevredenstellen met artefacten als het bestrijden ervan leidt tot extra vertraging.
  • ext-foreign-toplevel-list — verkrijging van informatie over oppervlakken die zich op het allerhoogste niveau (toplevel) bevinden, waarmee het mogelijk is om vensters boven andere inhoud vast te zetten, bijvoorbeeld voor het aansluiten van eigen panelen en vensterschakelaars.
  • security-context — stelt in staat cliënten te identificeren die sandbox-isolatie gebruiken. Een cliënt kan een nieuwe verbinding met een composietserver op basis van Wayland registreren en deze verbinden met een beveiligingscontext, waarna de composietmanager de mogelijkheden beheert die beschikbaar zijn voor de ingestelde verbinding op basis van de opgegeven beveiligingscontext.
  • cursor-shape — een alternatieve manier om het uiterlijk van de cursor aan te passen, gebaseerd op het verzenden van een reeks cursorafbeeldingen in plaats van gebonden te zijn aan een oppervlak (wl_surface).
  • cursor-shape — een alternatieve manier om het uiterlijk van de cursor aan te passen, gebaseerd op een serie cursorafbeeldingen in plaats van gebonden te zijn aan een oppervlak (wl_surface).
  • ‘ext-transient-seat’ — is bedoeld voor het maken van tijdelijke onafhankelijke sessies (seat), die zijn ontworpen voor gebruik met virtuele invoerapparaten. Bijvoorbeeld bij de implementatie van de mogelijkheid om te verbinden met een externe desktop maakt het protocol het mogelijk om voor elke gebruiker een aparte sessie met een virtueel toetsenbord en muis te creëren.
  • «xdg-toplevel-drag» breidt het mechanisme „drag & drop” uit met de mogelijkheid om bovenliggende vensters aan de verplaatsingsoperatie te koppelen, wat bijvoorbeeld kan worden gebruikt voor het organiseren van het slepen met de muis van tools of browser tabs. Het nieuwe protocol maakt het mogelijk om loskoppelbare vensteronderdelen te creëren die, wanneer ze uit dit venster worden gesleept, nieuwe vensters worden en zich boven bestaande vensters kunnen verplaatsen voordat ze opnieuw worden bevestigd.
  • «xdg-dialog» maakt het mogelijk om bovenliggende oppervlakken specifieke eigenschappen voor dialoogvensters toe te wijzen, bijvoorbeeld om modale dialoogvensters te creëren die de interactie van de gebruiker met de rest van de interface blokkeren.
  • «linux-drm-syncobj» biedt hulpmiddelen voor expliciete synchronisatie van buffers met behulp van synchronisatieobjecten van het DRM (Direct Rendering Manager). Het is bedoeld dat het voorgestelde protocol in de context van synchronisatie tijdens het renderen naar een buffer de samenwerking met stuurprogramma's op basis van grafische API's zoals Vulkan en OpenGL zal verbeteren (de implementatie is gebaseerd op handlers in de stuurprogramma's). Het nieuwe protocol biedt de mogelijkheid om te controleren of de renderbewerking naar de buffer is voltooid voordat de composietmanager deze buffer weergeeft.
  • alpha-modifier, die klanten in staat stelt om het transparantieniveau van een oppervlak te veranderen en de transparentie-operaties naar de compositor-server te verplaatsen, die deze operaties op zijn beurt kan doorsturen naar KMS.
  • xdg-toplevel-icon — koppeling van een pictogram aan een bovenliggend venster.
  • ext-image-capture-source en ext-image-copy-capture — organisatie van het vastleggen van inhoud die op het scherm wordt weergegeven.

Protocollen die ontwikkeld worden in de 'unstable' tak:

  • "fullscreen-shell" — beheer van de werking in de volledig scherm modus.
  • "invoermethode" — verwerking van invoermethoden.
  • "idle-inhibit" — blokkering van de screensaver (scherminvoeging) activatie.
  • "input-timestamps" — tijdstempels voor invoer-gebeurtenissen.
  • "keyboard-shortcuts-inhibit" — beheer van het koppelen van sneltoetsen en sneltoetsen.
  • "linux-explicit-synchronization" — Linux-specifiek mechanisme voor buffer-synchronisatie in verband met het oppervlak.
  • "pointer-gestures" — beheer van aanraakschermbedieningen.
  • "pointer constraints" — beperkingen van aanwijsinstellingen (blokkering).
  • "primary-selection" — werkt, net als bij X11, met de primaire klembord (primary selection), waarvan de invoer meestal wordt uitgevoerd met de middelste muisknop.
  • "relative pointer events" — relatieve aanwijsgebeurtenissen.
  • "tekst-invoer" — organisatie van tekstinvoer.
  • "xdg-foreign" — interface voor interactie met de oppervlakken van een 'buur'-client.
  • «xdg-decoration» — het renderen van vensterdecoraties aan de serverzijde.
  • «xdg-output» — aanvullende informatie over de videouitgang (gebruikt voor fractale schaalverhouding).
  • «xwayland-keyboard-grab» — het vastleggen van invoer in XWayland-applicaties.

Daarnaast kan de suggestie van een medewerker van Valve worden opgemerkt om een extra fase voor de promotie van nieuwe Wayland-protocollen toe te voegen — 'experimental', die de drempel voor het opnemen van protocollen in de set Wayland-Protocols zou verlagen en hun implementatie zou versnellen. Momenteel is het nodig om een ondersteunend team te vormen en een bepaald aantal bevestigingen (ACK) van beoordelingsdeelnemers te verkrijgen om een protocol in de fase staging te plaatsen. In 'experimental' wordt voorgesteld om protocollen op te nemen zonder bevestigingen, maar op basis van het ontbreken van bezwaren (NACK) gedurende een periode van twee weken voor beoordeling. Indien nodig kunnen beoordelingsdeelnemers ook de discussie met twee weken verlengen door de status 'WAIT' in te stellen.

In de fase 'experimental' wordt ook voorgesteld om wijzigingen toe te staan die niet compatibel zijn en het toevoegen van 'ruwe' protocollen, die geleidelijk geoptimaliseerd kunnen worden. Op deze manier zal de fase 'experimental' ontwikkelaars in staat stellen om snel nieuwe prototypen van protocollen aan te bieden, hun implementatie in bestaande projecten te stimuleren en feedback van gebruikers te ontvangen. Het voorgestelde proces moet ontwikkelaars van protocollen bevrijden van langdurige discussies en bureaucratie voordat ze worden opgenomen in Wayland-Protocols. Bijvoorbeeld, de in de huidige release geaccepteerde protocollen xdg-system-bell, fifo en commit-timing werden meer dan een jaar besproken.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster