Udgivelsen af Wayland-Protocols 1.38

Udgivet version 1.38 af wayland-protocols-pakken, som indeholder et sæt protokoller og udvidelser, der supplerer den grundlæggende Wayland-protokol og giver de nødvendige funktioner til opbygning af kompositservere og brugergrænseflader.

Alle protokoller gennemgår tre faser - udvikling, testning og stabilisering. Efter afslutningen af udviklingsfasen (kategori "unstable") overføres protokollen til "staging"-grenen og inkluderes officielt i pakken wayland-protocols, og efter afslutningen af testningen flyttes den til den stabile kategori. Protokoller i "staging" kan allerede anvendes i kompositservere og klienter, hvor den relaterede funktionalitet kræves. I modsætning til "unstable"-kategorien er ændringer, der bryder kompatibiliteten, ikke tilladt i "staging", men hvis der opstår problemer og mangler under testningen, kan det nye væsentlige version af protokollen eller en anden Wayland-udvidelse blive udskiftet.

I den nye version er der tilføjet protokoller til kategorien «staging»:

  • xdg-system-bell — giver mulighed for at afgive et systemsignal, som kan bruges som en advarsel i terminalemulatorer. Signalets outputform bestemmes af sammensætningsmanageren, og det kan være ikke blot lyd, men også visuel feedback.
  • fifo — implementerer en FIFO-mekanisme (først ind, først ud) til behandling af køopdateringer af det viste indhold. Praktisk set tillader protokollen ved udgang at bruge ventetid på afslutningen af den vertikale scanning (vblank) i stedet for at bruge callback-opkald ved hver klarhed til at vise et nyt billede, hvilket løser problemet med høj belastning på GPU'en ved brug af VSync.
  • commit-timing – giver mulighed for at knytte et tidsbegrænsning til overfladeindholdet (den sammensatte server skal vise ændringen i indholdet inden for den angivne tid, men ikke før).

I øjeblikket omfatter wayland-protocols følgende stabile protokoller, hvor bagudkompatibilitet sikres:

  • "viewporter" - giver klienten mulighed for at udføre handlinger vedrørende zoomning og beskæring af kanterne af overfladen på serversiden.
  • "presentation-time" - sikrer visning af video.
  • "xdg-shell" - grænseflade til oprettelse og interaktion med overflader som vinduer, der giver mulighed for at flytte dem rundt på skærmen, minimere, maksimere, ændre størrelse osv.
  • "linux-dmabuf" - muliggør deling af flere grafikkort ved hjælp af DMA-BUF-teknologi (giver mulighed for at oprette en wl_buffer baseret på DMA-BUF).
  • "tablet" - organisering af indtastning fra grafiktabletter.

Protokoller, der testes i "staging"-grenen:

  • drm-lease - leverer de ressourcer, der er nødvendige for at danne et stereobillede med forskellige buffere til venstre og højre øje ved output på VR-headsets.
  • "ext-session-lock" - definerer midler til at låse sessionen, f.eks. under arbejdet med skærmskærm eller output af autentificeringsdialog.
  • «single-pixel-buffer» — giver mulighed for at skabe enkelt-pixel buffere, der inkluderer fire 32-bit RGBA værdier.
  • «xdg-activation» — tillader overførsel af fokus mellem forskellige topniveau overflader (for eksempel kan et program ved hjælp af xdg-activation skifte fokus til et andet).
  • content-type — giver klienter mulighed for at overføre oplysninger om det viste indhold, som kan bruges til at optimere adfærden i forhold til indholdet, for eksempel specifikke DRM-egenskaber som «content type». Understøttelse af følgende indholdstyper er erklæret: none (ingen oplysninger om datatype), photo (visning af digitale fotos, der kræver minimal behandling), video (video eller animation, der kræver en mere præcis synkronisering for at undgå stammer) og game (start af spil, der kræver output med minimal forsinkelse). server ext-idle-notify — giver sammensatte servere mulighed for at sende meddelelser om brugerens inaktivitet til klienterne, hvilket kan bruges til at aktivere yderligere energibesparende tilstande efter en bestemt periode med inaktivitet.
  • tearing-control — giver mulighed for at deaktivere vertikal synkronisering (VSync) med et rammeforbrugspuls i fuldskærmsapplikationer, der anvendes til at forhindre opståen af tearing ved output. I multimedieapplikationer er det uønsket at opleve artefakter på grund af tearing, men i spilprogrammer kan der tolereres artefakter, hvis bekæmpelse af dem medfører yderligere forsinkelser.
  • ext-foreign-toplevel-list — modtagelse af oplysninger om overflader, der er placeret på det øverste niveau (toplevel), som muliggør fastgørelse af vinduer oven på andet indhold, for eksempel til tilslutning af egne paneler og vindueskontakter.
  • security-context — gør det muligt at identificere klienter, der bruger sandbox-isolering. Klienten kan registrere en ny forbindelse til den sammensatte server baseret på Wayland og knytte en sikkerhedskontekst til den, hvorefter den sammensatte manager i overensstemmelse med den angivne sikkerhedskontekst vil begrænse de tilgængelige muligheder for den etablerede forbindelse.
  • security-context — allows identifying clients using sandbox isolation. A client can register a new connection to the composite server based on Wayland and attach a security context to it, after which, according to the specified security context, the composite manager will restrict the capabilities available for the established connection.
  • cursor-shape — en alternativ metode til at konfigurere cursorens udseende baseret på overførslen af en række cursorbilleder i stedet for at binde det til overfladen (wl_surface).
  • «ext-transient-seat» — designet til at oprette midlertidige, uafhængige sessioner (seat), der er beregnet til brug sammen med virtuelle input-enheder. For eksempel ved implementering af muligheden for at tilslutte til fjerndesktop protokollen muliggør oprettelse af separate sessioner for hver bruger med virtuelle tastaturer og mus.
  • «xdg-toplevel-drag» — udvider «drag & drop»-mekanismen med muligheden for at knytte topniveau-vinduer til flytteoperationen, hvilket kan bruges til at organisere træk med musen af værktøjslinjer eller browserfaner. Den nye protokol muliggør oprettelse af adskillelige dele af vinduet, der under træk fra dette vindue bliver nye vinduer og kan bevæge sig over eksisterende vinduer før genfastgørelse.
  • «xdg-dialog» — tillader at tildele topniveau-flader egenskaber, der er specifikke for dialogvinduer, for eksempel kan man skabe modale dialoger, der blokerer brugerens interaktion med resten af brugergrænsefladen.
  • «linux-drm-syncobj» — leverer værktøjer til eksplicit synkronisering af buffere ved hjælp af DRM (Direct Rendering Manager) synkroniseringsobjekter. Det antages, at den foreslåede protokol i forbindelse med synkronisering ved rendering til buffer vil forbedre arbejdet med drivere baseret på grafiske API'er Vulkan og OpenGL (implementeringen er baseret på håndterere i driverne). Den nye protokol giver mulighed for at sikre, at renderingsoperationen til bufferen er afsluttet, før kompositionsmanageren viser denne buffer.
  • alpha-modifier, der giver klienter mulighed for at ændre niveauet af overensstemmelse af overfladen og udskyde operationer for at sikre transparens til den sammensatte server, som i sin tur kan omdirigere disse operationer til KMS.
  • xdg-toplevel-icon — binder et ikon til et topniveau-vindue.
  • ext-image-capture-source og ext-image-copy-capture — organiserer optagelsen af indhold vist på skærmen.

Protokoller, der udvikles i «unstable»-grenen:

  • «fullscreen-shell» — styring af arbejder i fuldskærmstilstand.
  • «input-method» — behandling af inputmetoder.
  • «idle-inhibit» — blokering af aktivering af screensaver.
  • «input-timestamps» — tidsstempler for inputbegivenheder.
  • «keyboard-shortcuts-inhibit» — kontrol af vedhæftningen af tastaturkombinationer og genveje.
  • «linux-explicit-synchronization» — en Linux-specifik mekanisme til synkronisering af buffere i relation til overfladen.
  • «pointer-gestures» — kontrol fra berøringsskærme.
  • «pointer constraints» — begrænsninger for pegere (låsing).
  • «primary-selection» — ligesom i X11 muliggør funktionalitet for primære udklipsholder (primary selection), hvor indsættelse af information normalt foretages med musens midterste knap.
  • «relative pointer events» — relative events for pegere.
  • «text-input» — organisering af tekstindføring.
  • «xdg-foreign» — grænseflade til interaktion med 'nabo'-klientens overflader.
  • «xdg-decoration» — rendering af vinduesdekorationer på serversiden.
  • «xdg-output» — yderligere oplysninger om videoudgangen (anvendes til brøk-skala).
  • «xwayland-keyboard-grab» — indfangning af input i XWayland-applikationer.

Derudover kan det nævnes, at en medarbejder fra Valve-firmaet har foreslået at tilføje en ny fase for lancering af nye Wayland-protokoller — «experimental», som vil reducere barriererne for inkludering af protokoller i Wayland-Protocols-sættet og fremskynde deres implementering. I øjeblikket kræves det, at der dannes et støtteteam og opnås et bestemt antal bekræftelser (ACK) fra anmeldere for at inkludere en protokol i staging-fasen. I «experimental» foreslås det at acceptere protokoller ikke ved at indhente bekræftelser, men på baggrund af manglende indvendinger (NACK) i en to-ugers gennemgangsperiode. Hvis nødvendigt kan deltagerne i anmeldelsen også forlænge diskussionen i yderligere to uger ved at sætte status til «WAIT».

I «experimental» fasen foreslås det også at tillade ændringer, der bryder kompatibilitet, samt tilføjelse af «rå» protokoller, som gradvist kan bringes op på det rette niveau. Derved vil «experimental» fasen hurtigt kunne bringe nye prototyper af protokoller til udviklerne, stimulere deres implementering i eksisterende projekter og få feedback fra brugerne. Den foreslåede proces skal befri protokoludviklerne fra langvarige diskussioner og bureaukrati før de accepteres i Wayland-Protocols. For eksempel er de protokoller, der er accepteret i denne udgivelse, xdg-system-bell, fifo og commit-timing blevet diskuteret i mere end et år.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster