Ir publicēta wayland-protocols pakotnes versija 1.38, kas ietver protokolu un paplašinājumu kopumu, kas papildina pamata Wayland protokolu un nodrošina iespējas, kas nepieciešamas kompozīcijas serveru un lietotāja videi izveidei.
Visi protokoli secīgi iziet trīs posmus — izstrāde, testēšana un stabilizācija. Pabeidzoties izstrādes posmam (kategorija «unstable»), protokols tiek pārvietots uz «staging» nozari un oficiāli iekļauts Wayland-protocols komplektā, bet pēc testēšanas pabeigšanas tas tiek pārvietots uz stabilo kategoriju. Protokoli no «staging» kategorijas jau var tikt izmantoti kompozīta serveros un klientos, kur nepieciešama saistītā funkcionalitāte. Atšķirībā no «unstable» kategorijas, «staging» ir aizliegts veikt izmaiņas, kas pārkāpj saderību, taču, ja testēšanas laikā tiek atklāti trūkumi, izslēgts nav jaunas ievērojamas protokola versijas vai cita Wayland paplašinājuma nomaiņa.
Jaunajā versijā kategorijā ‘staging’ ir pievienoti protokoli:
- xdg-system-bell — ļauj izvadīt sistēmas signālu, ko var izmantot, piemēram, kā brīdinājumu termināla emulatorā. Signāla iznākuma forma tiek noteikta kompozīcijas menedžera ieskatos, tas var būt ne tikai skaņa, bet arī vizuāla atbilde.
- fifo — īsteno FIFO mehānismu (pirmais ieradās — pirmais aizgāja) attēlojamās virsmas saturu atjaunošanas rindu apstrādei. Praktiski šis protokols ļauj izvadē izmantot vertikālo sinhronizāciju (vblank) gaidīšanu, kas risina problēmu ar augstu slodzi uz GPU, izmantojot VSync, vietā, kurā callback izsaukumi tiek izmantoti katras jaunā kadra gatavības laikā.
- commit-timing — ļauj piešķirt laika ierobežojumu virsmas saturam (kompozīcijas serverim jāattēlo izmaiņas saturā, cik drīz vien iespējams, noteiktā laikā, bet ne ātrāk).
Šobrīd wayland-protocols iekļauj šādus stabilus protokolus, kuros nodrošināta atpakaļsaderība:
- «viewporter» — ļauj klientam veikt darbības par mērogošanu un malas apgriešanu virsmas pusē servera.
- «presentation-time» — nodrošina video attēlošanu.
- «xdg-shell» — interfeiss virsmu izveidei un mijiedarbībai kā ar logiem, kas ļauj tās pārvietot pa ekrānu, minimizēt, maksimizēt, mainīt izmēru utt.
- «linux-dmabuf» — nodrošina vairāku grafisko karšu koplietošanu, izmantojot DMA-BUF tehnoloģiju (ļauj izveidot wl_buffer, pamatojoties uz DMA-BUF).
- «tablet» — ievade no grafiskajiem planšetdatoriem.
Protokoli, kas tiek testēti «staging» atzarā:
- drm-lease — nodrošina resursus, kas nepieciešami stereoskāras attēla veidošanai ar dažādiem buferiem kreisajam un labajam acs attēlam virtuālās realitātes brillēm.
- «ext-session-lock» — nosaka sesiju bloķēšanas līdzekļus, piemēram, ekrāna aizsargprogrammas laikā vai autentifikācijas dialoga izvadē.
- «single-pixel-buffer» — ļauj izveidot vienas pikseļa buferus, kas sastāv no četriem 32-bitu RGBA vērtībām.
- «xdg-activation» — ļauj pārnest fokusu starp dažādām pirmā līmeņa virsmām (piemēram, ar xdg-activation viena lietojumprogramma var pārsūtīt fokusu uz citu).
- content-type — ļauj klientiem pārsūtīt kompozītmateriāla serverim informāciju par attēlotajiem materiāliem, ko var izmantot, lai optimizētu uzvedību attiecībā uz saturu, piemēram, specifisku DRM īpašību noteikšanai, piemēram, «content type». Ir paziņota atbalsta sniegšana šādiem satura veidiem: none (nav informācijas par datu tipiem), photo (digitālo fotoattēlu attēlošana, kam nepieciešama minimāla apstrāde), video (video vai animācija, kas prasa precīzāku sinhronizāciju, lai novērstu aizkavēšanos) un game (spēļu uzsākšana, kas prasa attēlošanu ar minimālu aizturi).
- ext-idle-notify — ļauj kompozītu serveriem nosūtīt klientiem paziņojumus par lietotāja neaktivitāti, ko var izmantot, lai aktivizētu papildu enerģijas taupīšanas režīmus pēc noteikta neaktivitātes laika.
- tearing-control — ļauj atslēgt vertikālo sinhronizāciju (VSync) pilnekrāna lietojumprogrammās ar kadru iznīcināšanas impulsu, kas tiek izmantots, lai novērstu asarošanu attēlā. Multimediālos lietojumos asarošanas artefaktu parādīšanās ir nevēlams efekts, bet spēļu programmās šo artefaktu klātbūtne ir pieņemama, ja to novēršana noved pie papildu aiztures.
- ext-foreign-toplevel-list — iegūst informāciju par virsotnēm, kas izvietotas augstākajā līmenī (toplevel), kas ļauj organizēt logu piesaisti virs cita satura, piemēram, savienojot savas paneļus un logu slēdzējus.
- security-context — ļauj identificēt klientus, kas izmanto sand-box izolāciju. Klients var reģistrēt jaunu savienojumu ar kompozītu serveri, kas balstās uz Wayland, un pievienot tam drošības kontekstu, pēc kura, pamatojoties uz norādīto drošības kontekstu, kompozītu menedžeris ierobežos iespējas, kas pieejamas iestatītajam savienojumam.
- cursor-shape — alternatīvs veids, kā pielāgot kursora izskatu, balstoties uz kursora attēlu sērijas pārsūtīšanu, nevis piesaistot to virsotnei (wl_surface).
- „ext-transient-seat” — paredzēts pagaidu neatkarīgu sesiju (seat) izveidei, kas paredzēta lietošanai ar virtuālajiem ievades ierīcēm. Piemēram, iespējo piekļuvi attālinātam darbvirsmai protokols ļauj katram lietotājam izveidot atsevišķu sesiju ar virtuālo tastatūru un peli.
- «xdg-toplevel-drag» — paplašina «drag & drop» mehānismu ar iespēju pievienot augstākā līmeņa logus pārvietošanas operācijai, ko var izmantot, piemēram, lai organizētu rīkjoslu vai pārlūkprogrammas cilņu pārvilkšanu ar peles palīdzību. Jaunais protokols ļauj izveidot atvienojamas loga daļas, kas, pārvilkta no šī loga, kļūst par jauniem logiem un var pārvietoties virs esošā loga, pirms tiek atkārtoti pievienotas.
- «xdg-dialog» — ļauj piešķirt augstākā līmeņa virsmām dialogu logiem specifiskus parametrus, piemēram, var izveidot modālos dialogus, kas bloķē lietotāja mijiedarbību ar pārējo interfeisu.
- «linux-drm-syncobj» — sniedz rīkus, lai skaidri sinhronizētu buferus, izmantojot DRM (Direct Rendering Manager) sinhronizācijas objektus. Tiek pieņemts, ka šis protokols, kas paredzēts sinhronizēšanai buferu attēlošanas procesā, uzlabos darbu ar Vulkan un OpenGL grafiskajiem API pamata vadītājiem (implementācija balstās uz vadītāju apstrādātājiem). Jaunais protokols ļauj pārliecināties, ka attēlošanas operācija buferī ir pabeigta pirms kompozīcija menedžers attēlo šo buferi.
- alpha-modifier, kas ļauj klientiem mainīt virsmas caurspīdīguma līmeni un pārnest caurspīdīguma nodrošināšanas operācijas uz kompozīcijas servera pusi, kas var pāradresēt šīs operācijas KMS.
- xdg-toplevel-icon — ikonas piesaiste augstākā līmeņa logam.
- ext-image-capture-source un ext-image-copy-capture — satura uztveršana, kas tiek attēlota ekrānā.
Protokoli, kas tiek izstrādāti «unstable» zarā:
- «fullscreen-shell» — pilnekrāna režīma vadība.
- «input-method» — ievades metožu apstrāde.
- «idle-inhibit» — ekrāna saudzētāja (screensaver) palaišanas bloķēšana.
- «input-timestamps» — ievades notikumu un laika zīmes.
- «keyboard-shortcuts-inhibit» — kontroles taustiņu kombināciju un īsceļu piesaistes.
- «linux-explicit-synchronization» — Linux specifisks buferu sinhronizācijas mehānisms, kas saistīts ar virsmu.
- «pointer-gestures» — kontrole no skārienekrāniem.
- «pointer constraints» — rādītāju ierobežojumi (bloķēšana).
- «primary-selection» — līdzīgi kā X11 nodrošina primārā starpbuferu (primary selection) darbību, informācijas ielīmēšana parasti notiek ar vidējo peles pogu.
- «relative pointer events» — relatīvie rādītāju notikumi.
- «text-input» — tekstu ievades organizācija.
- «xdg-foreign» — interfeiss mijiedarbībai ar «kaimiņu» klienta virsmām.
- «xdg-decoration» — logu noformējuma atveidošana servera pusē.
- «xdg-output» — papildu informācija par video izeju (izmanto, lai veiktu daļēju mērogošanu).
- «xwayland-keyboard-grab» — ievades uztveršana XWayland lietotnēs.
Papildus var minēt Valve darbinieka priekšlikumu pievienot vēl vienu fāzi jauno Wayland protokolu virzīšanai — ‘experimental’, kas ļaus samazināt barjeras protokolu iekļaušanai Wayland-Protocols komplektā un paātrināt to ieviešanu. Pašreiz, lai protokols iekļūtu ‘staging’ fāzē, ir jāizveido atbalsta komanda un jāpārbauda noteikts skaits (ACK) no recenzentiem. ‘Experimental’ fāzē tiek piedāvāts pieņemt protokolu nevis ar apstiprinājumu, bet gan, ja nenotiek iebildumi (NACK) divu nedēļu recenzēšanas periodā. Ja nepieciešams, recenzenti var pagarināt diskusiju vēl par divām nedēļām, iezīmējot statusu ‘WAIT’.
‘Experimental’ fāzē arī tiek piedāvāts ļaut veikt izmaiņas, kas pārkāpj savietojamību, un pievienot ‘neapstrādātus’ protokolus, kurus var pakāpeniski apstrādāt līdz attiecīgajam līmenim. Tādējādi ‘experimental’ fāze ļaus ātri piegādāt izstrādātājiem jaunus protokolu prototipus, veicinot to īstenošanu esošajos projektos un iegūstot atgriezenisko saiti no lietotājiem. Ieteiktais process jāatbrīvo protokolu izstrādātājus no ilgiem apspriešanas procesiem un birokrātijas pirms iekļaušanas Wayland-Protocols sastāvā. Piemēram, šī izlaiduma pieņemto protokolu xdg-system-bell, fifo un commit-timing apspriešana ilga vairāk nekā gadu.
Avots: opennet.lv
