Izdanje Wayland-Protocols 1.38

Objavljen je paket wayland-protocols 1.38, koji sadrži skup protokola i ekstenzija koje nadopunjuju osnovni Wayland protokol i pružaju mogućnosti potrebne za izgradnju kompozitnih poslužitelja i korisničkih okruženja.

Svi protokoli prolaze kroz tri faze — razvoj, testiranje i stabilizaciju. Nakon završetka faze razvoja (kategorija „unstable”), protokol se premješta u granu „staging” i službeno se uključuje u skup wayland-protocols, a nakon završetka testiranja prelazi u kategoriju stabilnih. Protokoli iz kategorije „staging” već se mogu koristiti u kompozitnim poslužiteljima i klijentima gdje je potrebna s njima povezana funkcionalnost. Za razliku od kategorije „unstable”, u „staging” su promjene koje narušavaju kompatibilnost zabranjene, no u slučaju otkrivanja problema i nedostataka tijekom testiranja, ne isključuje se zamjena novom značajnom verzijom protokola ili drugom Wayland-ekstenzijom.

Nova verzija u kategoriju „staging“ dodaje protokole:

  • xdg-system-bell - omogućuje ispuštanje sistemskog signala, koji se može koristiti, na primjer, kao upozorenje u emulatoru terminala. Oblik ispuštanja signala određuje se po izboru kompozitnog upravitelja, to može biti ne samo zvuk, već i vizualna povratna informacija.
  • fifo — implementira FIFO mehanizam (prvi došao — prvi otišao) obrade reda ažuriranja sadržaja prikazane površine. S praktičnog stajališta, protokol omogućuje korištenje čekanja na završetak vertikalnog vraćanja (vblank) prilikom iscrtavanja umjesto korištenja callback poziva za svaku spremnost za prikaz novog okvira, što rješava problem visokog opterećenja GPU-a pri korištenju VSync.
  • commit-timing — omogućava vezivanje vremenskog ograničenja na sadržaj površine (kompozitni poslužitelj treba prikazati promjenu sadržaja što je prije moguće unutar navedenog vremena, ali ne ranije).

Trenutno skup wayland-protocols uključuje sljedeće stabilne protokole, u kojima se osigurava unatradna kompatibilnost:

  • «viewporter» — omogućuje klijentu da obavlja radnje preklapanja i izrezivanja rubova površine na strani poslužitelja.
  • «presentation-time» — osigurava reprodukciju videa.
  • „xdg-shell” — sučelje za stvaranje i interakciju s površinama kao s prozorima, što omogućuje njihovo pomicanje po ekranu, minimaliziranje, povećavanje, promjenu veličine itd.
  • «linux-dmabuf» — omogućava dijeljenje više grafičkih kartica putem DMA-BUF tehnologije (omogućava stvaranje wl_buffer-a temeljenog na DMA-BUF-u).
  • «tablet» — organizacija unosa s grafičkih tableta.

Protokoli koji se testiraju u «staging» grani:

  • drm-lease — pruža resurse potrebne za stvaranje stereo prikaza s različitim spremnicima za lijevo i desno oko prilikom prikazivanja na slušalicama za virtualnu stvarnost.
  • «ext-session-lock» — definira sredstva za zaključavanje sesije, primjerice tijekom rada zaštitnika ekrana ili prikaza dijaloga za autentifikaciju.
  • «single-pixel-buffer» — omogućuje stvaranje jednopikselnih spremnika koji uključuju četiri 32-bitne RGBA vrijednosti.
  • «xdg-activation» — omogućuje prijenos fokusa između različitih razina površina (na primjer, pomoću xdg-activation jedna aplikacija može prebaciti fokus na drugu).
  • content-type — omogućuje klijentima da proslijede kompozitnom poslužitelju informacije o prikazanom sadržaju koje se mogu koristiti za optimizaciju ponašanja prema sadržaju, na primjer, postavljanjem specifičnih DRM svojstava, poput «tipa sadržaja». Prijavljena podrška za sljedeće tipove sadržaja: none (nema informacija o tipu podataka), photo (izlaz digitalnih fotografija koji zahtijeva minimalnu obradu), video (video ili animacija, koja zahtijeva precizniju sinkronizaciju kako bi se isključila usporenja) i game (pokretanje igara, zahtijeva izlaz s minimalnim kašnjenjem).
  • ext-idle-notify — omogućava kompozitnim poslužiteljima da klijentima šalju obavijesti o neaktivnosti korisnika, što se može iskoristiti za aktiviranje dodatnih načina uštedu energije nakon određenog vremena neaktivnosti.
  • tearing-control — omogućuje isključivanje vertikalne sinkronizacije (VSync) s okvirem koji ublažava, korištene za sprečavanje pojave razdvajanja (tearing) u aplikacijama na cijelom ekranu. U multimedijskim aplikacijama, pojava artefakata zbog razdvajanja je nepoželjni učinak, ali u igrama se s artefaktima može tolerirati ako njihovo ispravljanje dovodi do dodatnih kašnjenja.
  • ext-foreign-toplevel-list — dobivanje informacija o površinama smještenim na samom vrhu (toplevel), koje omogućuju organizaciju pričvršćenih prozora iznad drugog sadržaja, na primjer, za povezivanje vlastitih panela i prekidača prozora.
  • security-context — omogućava identifikaciju klijenata koji koriste sandbox-izolaciju. Klijent može registrirati novu vezu s kompozitnim poslužiteljem temeljenim na Waylandu i povezati je s kontekstom sigurnosti, nakon čega će prema navedenom kontekstu sigurnosti kompozitni manager ograničiti mogućnosti dostupne za uspostavljenu vezu.
  • cursor-shape — alternativni način podešavanja izgleda pokazivača, temeljen na prijenosu niza slika pokazivača umjesto vezivanja uz površinu (wl_surface).
  • «ext-transient-seat» — predviđen za stvaranje privremenih neovisnih sjedala (seat), namijenjenih korištenju s virtualnim uređajima za ulaz. Na primjer, prilikom implementacije mogućnosti povezivanja s daljinskim radnim stolom Protokol omogućava kreiranje zasebne sesije za svakog korisnika s virtualnom tipkovnicom i mišem.
  • «xdg-toplevel-drag» - proširuje mehanizam «drag & drop» mogućnošću vezivanja prozora najvišeg nivoa uz operaciju pomicanja, što se može koristiti, na primjer, za organizaciju povlačenja mišem alatnih panela ili kartica preglednika. Novi protokol omogućava stvaranje odvojivih dijelova prozora koji, kada se povuku iz ovog prozora, postaju novi prozori i mogu se premještati iznad postojećeg prozora prije ponovnog vezivanja.
  • «xdg-dialog» - omogućuje dodjeljivanje površinama najvišeg nivoa atributa specifičnih za dijaloške prozore, na primjer, moguće je stvarati modalne dijaloge koji blokiraju interakciju korisnika s ostatkom sučelja.
  • «linux-drm-syncobj» — pruža alate za eksplicitnu sinhronizaciju bafera pomoću DRM objekata za sinhronizaciju (Direct Rendering Manager). Pretpostavlja se da će novi protokol poboljšati rad s upravljačkim programima temeljima na grafičkim API-ima Vulkan i OpenGL u kontekstu sinhronizacije prilikom rendering-a u bafer (implementacija se temelji na obradama u upravljačkim programima). Novi protokol omogućava osiguravanje da je operacija rendering-a u bafer završena prije nego što kompozitni menadžer prikaže taj bafer.
  • alpha-modifier, koji omogućava klijentima da mijenjaju razinu prozirnosti površine i prebacuju operacije za postizanje prozirnosti na stranu kompozitnog poslužitelja, koji ih može preusmjeriti KMS-u.
  • xdg-toplevel-icon - vezivanje ikone uz prozor najvišeg nivoa.
  • ext-image-capture-source i ext-image-copy-capture - organizacija snimanja sadržaja koji se prikazuje na ekranu.

Protokoli koji se razvijaju u "unstable" grani:

  • "fullscreen-shell" — upravljanje radom u punom ekranu.
  • "input-method" — obrada metoda unosa.
  • "idle-inhibit" — blokiranje pokretanja zaštitnog ekrana (screensaver-a).
  • "input-timestamps" — vremenske oznake za događaje unosa.
  • "keyboard-shortcuts-inhibit" — upravljanje vezivanjem kombinacija tastera i prečica.
  • "linux-explicit-synchronization" — mehanizam sinhronizacije bafera specifičan za Linux, vezan za površinu.
  • "pointer-gestures" — upravljanje putem dodirnih ekrana.
  • "pointer constraints" — ograničenja pokazivača (blokada).
  • "primary-selection" — slično X11, omogućava rad primarnog međuspremnika (primary selection), čije unošenje obično vrši srednja dugmad miša.
  • "relative pointer events" — relativni događaji pokazivača.
  • "text-input" — organizacija unosa teksta.
  • "xdg-foreign" — sučelje za interakciju sa površinama "susjednog" klijenta.
  • "xdg-decoration" — iscrtavanje dekoracija prozora na strani servera.
  • "xdg-output" — dodatne informacije o video izlazu (koristi se za fractional scaling).
  • «xwayland-keyboard-grab» — hvatanje ulaza u XWayland aplikacijama.

Dodatno, vrijedi spomenuti prijedlog zaposlenika tvrtke Valve o dodavanju još jedne faze napredovanja novih Wayland protokola — „experimental“, koja će smanjiti barijeru za uključivanje protokola u set Wayland-Protocols i ubrzati njihovu implementaciju. Trenutačno, za ulazak protokola u fazu staging potrebno je formirati tim podrške i dobiti određeni broj potvrda (ACK) od sudionika recenziranja. U fazi „experimental“ nudi se prihvaćanje protokola ne putem dobivanja potvrda, već na temelju izostanka prigovora (NACK) tijekom dvotjednog razdoblja recenziranja. Ako je potrebno, sudionici recenziranja također mogu produžiti raspravu još dva tjedna, označivši status „WAIT“.

U fazi „experimental“ također se predlaže dopuštanje izmjena koje krše kompatibilnost i dodavanje „sirovih“ protokola, koje će se postupno razvijati do potrebne razine. Tako će faza „experimental“ omogućiti brzo dostavljanje novih prototipova protokola developerima, poticati njihovu implementaciju u postojećim projektima i dobivanje povratnih informacija od korisnika. Predloženi proces trebao bi osloboditi developere protokola od dugotrajnih rasprava i birokracije prije nego što budu uključeni u Wayland-Protocols. Na primjer, protokoli xdg-system-bell, fifo i commit-timing, prihvaćeni u ovoj verziji, raspravljali su se više od godinu dana.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster