Versió de Wayland-Protocols 1.38

S'ha llançat el paquet wayland-protocols 1.38, que conté un conjunt de protocols i extensions que complementen el protocol Wayland base i proporcionen les capacitats necessàries per crear servidors compostos i entorns d'usuari.

Tots els protocols passen seqüencialment per tres fases: desenvolupament, proves i estabilització. Després de completar l'etapa de desenvolupament (la categoria "inestable"), el protocol es col·loca a la branca "escenificació" i s'inclou oficialment al conjunt de protocols de wayland, i un cop finalitzada la prova, es trasllada a la categoria estable. Els protocols de la categoria "escenificació" ja es poden utilitzar en servidors i clients compostos on es requereix una funcionalitat relacionada. A diferència de la categoria "inestable", la "escenificació" prohibeix fer canvis que infringeixin la compatibilitat, però si s'identifiquen problemes i deficiències durant les proves, no s'exclou la substitució per una nova versió significativa del protocol o una altra extensió de Wayland.

A la nova versió, s'han afegit els protocols següents a la categoria "escenificació":

  • xdg-system-bell - us permet enviar un senyal del sistema, que es pot utilitzar, per exemple, com a avís en un emulador de terminal. La forma de la sortida del senyal es determina a criteri del gestor de compostos, no només pot ser un so, sinó una resposta visual.
  • fifo - implementa un mecanisme FIFO (first in, first out) per processar la cua d'actualització de contingut de la superfície mostrada. Pel que fa a la pràctica, el protocol permet que la sortida s'esperi fins que es completi l'escaneig vertical (vblank) en lloc d'utilitzar trucades de retorn de trucada cada vegada que estigui llest per mostrar un fotograma nou, cosa que resol el problema de la càrrega elevada de la GPU quan s'utilitza VSync.
  • commit-timing: us permet vincular un límit de temps al contingut de superfície (el servidor compost hauria de reflectir el canvi de contingut si és possible després del temps especificat, però no abans).

Actualment, wayland-protocols inclou els següents protocols estables, que proporcionen compatibilitat enrere:

  • "viewporter": permet al client dur a terme accions d'escala i retallades de la superfície al costat del servidor.
  • "presentation-time": proporciona visualització de vídeo.
  • “xdg-shell” és una interfície per crear i interactuar amb superfícies com a finestres, que permet moure-les per la pantalla, minimitzar, ampliar, canviar la mida, etc.
  • “linux-dmabuf”: proporciona la compartició de diverses targetes de vídeo utilitzant la tecnologia DMA-BUF (us permet crear un wl_buffer basat en DMA-BUF).
  • "tauleta" - organització de l'entrada de tauletes gràfiques.

Protocols provats a la branca “escenificació”:

  • drm-lease: proporciona els recursos necessaris per generar una imatge estèreo amb diferents buffers per als ulls esquerre i dret quan s'emet a auriculars de realitat virtual.
  • "ext-session-lock" - defineix un mitjà per bloquejar una sessió, per exemple, mentre s'està executant l'estalvi de pantalla o es mostra el diàleg d'autenticació.
  • "single-pixel-buffer": us permet crear memòries intermèdies d'un sol píxel que inclouen quatre valors RGBA de 32 bits.
  • "xdg-activation" - us permet transferir el focus entre diferents superfícies de primer nivell (per exemple, amb l'activació xdg, una aplicació pot canviar el focus a una altra).
  • tipus de contingut: permet als clients passar contingut compost servidor Informació sobre el contingut que es mostra que es pot utilitzar per optimitzar el comportament en funció del contingut, com ara la configuració de propietats DRM específiques com ara "tipus de contingut". Es declara compatibilitat amb els següents tipus de contingut: cap (no hi ha informació sobre el tipus de dades), foto (sortida de fotos digitals que requereix un processament mínim), vídeo (vídeo o animació, que requereix una sincronització més precisa per evitar entrebancs) i joc (inici del joc, que requereix una sortida amb una latència mínima).
  • ext-idle-notify: permet als servidors compostos enviar notificacions als clients sobre la inactivitat de l'usuari, que es poden utilitzar per activar modes d'estalvi d'energia addicionals després d'un cert temps d'inactivitat.
  • tearing-control: us permet desactivar la sincronització vertical (VSync) amb un pols d'amortiment vertical en aplicacions de pantalla completa, que s'utilitza per protegir contra el trencament de la sortida. A les aplicacions multimèdia, els artefactes a causa del trencament són un efecte no desitjat, però en els programes de jocs, els artefactes es poden tolerar si tractar-los provoca retards addicionals.
  • ext-foreign-toplevel-list: recupera informació sobre superfícies col·locades al nivell superior, que us permeten organitzar finestres per acoblar-les a un altre contingut, per exemple, per adjuntar els vostres propis panells i interruptors de finestres.
  • context de seguretat: us permet identificar clients mitjançant l'aïllament de sandbox. Un client pot registrar una nova connexió a un servidor compost basat en Wayland i adjuntar-hi un context de seguretat, després del qual el gestor compost limitarà les capacitats disponibles per a la connexió establerta en funció del context de seguretat especificat.
  • La forma del cursor és una forma alternativa de personalitzar l'aparença del cursor, basant-se en passar una sèrie d'imatges del cursor en lloc d'enganxar-se a una superfície (wl_surface).
  • "ext-transient-seat" està dissenyat per crear sessions independents temporals (seients) dissenyades per al seu ús amb dispositius d'entrada virtuals. Per exemple, quan s'implementa la capacitat de connectar-se a escriptori remot El protocol permet crear una sessió separada amb un teclat i un ratolí virtuals per a cada usuari.
  • "xdg-toplevel-drag": amplia el mecanisme d'"arrossegar i deixar anar" amb la possibilitat d'adjuntar finestres de nivell superior a una operació d'arrossegament, que es pot utilitzar, per exemple, per organitzar l'arrossegament de barres d'eines o pestanyes del navegador amb el ratolí. El nou protocol permet crear parts desmuntables d'una finestra que, quan s'arrosseguen des d'aquesta finestra, es converteixen en finestres noves i es poden moure a sobre de la finestra existent abans de tornar-les a adjuntar.
  • "xdg-dialog" - us permet assignar atributs específics del diàleg a les superfícies de nivell superior, per exemple, podeu crear diàlegs modals que bloquegen la interacció de l'usuari amb la resta de la interfície.
  • "linux-drm-syncobj": proporciona eines per sincronitzar explícitament els buffers mitjançant objectes de sincronització DRM (Direct Rendering Manager). Se suposa que en el context de la sincronització quan es dibuixa a una memòria intermèdia, el protocol proposat millorarà el treball amb controladors basats en les API de gràfics Vulkan i OpenGL (la implementació es basa en els controladors dels controladors). El nou protocol permet assegurar-se que una operació de renderització a un buffer s'hagi completat abans que el gestor de compostos renderitzi el buffer.
  • modificador alfa, que permet als clients canviar el nivell de transparència de la superfície i les operacions de transferència per garantir la transparència al costat del servidor compost, que al seu torn pot redirigir aquestes operacions al KMS.
  • xdg-toplevel-icon: enllaça la icona a la finestra de nivell superior.
  • ext-image-capture-source i ext-image-copy-capture: organització de la captura de contingut que es mostra a la pantalla.

Protocols que s'estan desenvolupant a la branca "instable":

  • "fullscreen-shell" - control del treball en mode de pantalla completa.
  • "input-method" - mètodes d'entrada de processament.
  • "idle-inhibit": bloqueja l'inici de l'estalvi de pantalla (salvapantalles).
  • "input-timestamps" - marques de temps per a esdeveniments d'entrada.
  • "keyboard-shortcuts-inhibit": controla la connexió de tecles de drecera i tecles d'accés directe.
  • "linux-explicit-synchronization" és un mecanisme específic de Linux per sincronitzar els buffers de superfície.
  • "gestos de punter": control des de les pantalles tàctils.
  • "restriccions del punter" - restriccions del punter (bloqueig).
  • "selecció primària": per analogia amb X11, assegura el funcionament del porta-retalls principal (selecció principal), informació de la qual normalment s'insereix amb el botó central del ratolí.
  • "esdeveniments de punter relatiu" - esdeveniments de punter relatius.
  • "entrada de text" - organització de l'entrada de text.
  • "xdg-foreign" és una interfície per interactuar amb les superfícies del client "veí".
  • "xdg-decoration": representa les decoracions de la finestra al costat del servidor.
  • "xdg-output": informació addicional sobre la sortida de vídeo (utilitzada per a l'escala fraccionada).
  • "xwayland-keyboard-grab" - captura l'entrada a les aplicacions XWayland.

A més, podem destacar la proposta d'un empleat de Valve d'afegir una altra fase per a la promoció de nous protocols Wayland, "experimentals", que reduirà la barrera per incloure protocols en el conjunt de protocols Wayland i accelerarà la seva implementació. Actualment, perquè un protocol entri en la fase de posada en escena, és necessari formar un equip de suport i rebre un cert nombre d'agraïments (ACK) dels participants de la revisió. Experimental proposa que el protocol s'accepta no mitjançant confirmació, sinó sense objecció (NACK) durant el període de revisió de dues setmanes. Si cal, els revisors també poden allargar la discussió durant dues setmanes més configurant l'estat a "ESPERAR".

En la fase "experimental", també es proposa permetre canvis que vulnerin la compatibilitat i l'addició de protocols "crues", que es puguin portar gradualment al nivell adequat. Així, la fase “experimental” permetrà portar ràpidament nous prototips de protocol als desenvolupadors, estimular la seva implementació en projectes existents i rebre feedback dels usuaris. El procés proposat hauria d'estalviar als desenvolupadors de protocols de llargues discussions i burocracia abans de ser acceptat als protocols Wayland. Per exemple, els protocols xdg-system-bell, fifo i commit-timing adoptats a la versió actual s'han discutit durant més d'un any.

Font: opennet.ru

Afegeix comentari