Vydání Wayland-Protocols 1.38

Byl vydán balíček wayland-protocols verze 1.38, který obsahuje sadu protokolů a rozšíření, jež doplňují základní protokol Wayland a poskytují možnosti potřebné pro budování kompozitních serverů a uživatelských prostředí.

Všechny protokoly procházejí třemi fázemi — vývoje, testování a stabilizace. Po dokončení vývojové fáze (kategorie „unstable“) je protokol přesunut do větve „staging“ a oficiálně zahrnut do sady wayland-protocols, a po dokončení testování je přesunut do kategorie stabilních. Protokoly v kategorii „staging“ lze již použít v kompozitních serverech a klientech, kde je požadována související funkčnost. Na rozdíl od kategorie „unstable“ je v „staging“ zakázáno provádět změny, které narušují kompatibilitu, ale v případě zjištění problémů a nedostatků během testování nelze vyloučit výměnu za novou významnou verzi protokolu nebo jiného Wayland-rozšíření.

Nová verze do kategorie „staging“ přidává protokoly:

  • xdg-system-bell — umožňuje vyvolat systémový signál, který může být například použit jako varování v emulátoru terminálů. Forma vyvolání signálu je na uvážení kompozičního manažera, může to být nejen zvuk, ale i vizuální reakce.
  • fifo — implementuje FIFO mechanismus (first in, first out) zpracování fronty pro aktualizaci obsahu zobrazované plochy. Z praktického hlediska protokol umožňuje očekávání dokončení vertikální synchronizace (vblank) místo používání callback volání při každé přípravě k zobrazení nového snímku, což řeší problém s vysokým zatížením GPU při používání VSync.
  • commit-timing — umožňuje připojit časové omezení k obsahu plochy (kompoziční server by měl zobrazit změnu obsahu co nejdříve po určeném čase, ale ne dříve).

V současné době zahrnuje sada wayland-protocols následující stabilní protokoly, které zajišťují zpětnou kompatibilitu:

  • "viewporter" — umožňuje klientovi provádět akce ohledně měnění velikosti a ořezávání okrajů plochy na straně serveru.
  • „presentation-time“ — zajišťuje zobrazení videa.
  • „xdg-shell“ — rozhraní pro vytváření a interakci s plochami jako okny, což umožňuje jejich přesouvání po obrazovce, minimalizaci, maximalizaci, změnu velikosti atd.
  • „linux-dmabuf“ - umožňuje sdílení více grafických karet pomocí technologie DMA-BUF (umožňuje vytvořit wl_buffer na základě DMA-BUF).
  • "tablet" — organizace vstupu z grafických tabletů.

Protokoly testované ve větvi „staging“:

  • drm-lease — poskytuje prostředky potřebné k vytvoření stereofonního obrazu s různými vyrovnávacími paměťmi pro levé a pravé oko při výstupu na virtuální brýle.
  • „ext-session-lock“ — určuje prostředky pro blokaci sezení, například během činnosti spořiče obrazovky nebo zobrazení dialogu pro autentifikaci.
  • „single-pixel-buffer“ — umožňuje vytvářet jednopixelové vyrovnávací paměti obsahující čtyři 32bitové hodnoty RGBA.
  • „xdg-activation“ — umožňuje přenést fokus mezi různými plochami první úrovně (např. pomocí xdg-activation může jedna aplikace přepnout fokus na jinou).
  • content-type — umožňuje klientům předat kompozitnímu serveru informace o zobrazovaném obsahu, které mohou být využity k optimalizaci chování s ohledem na obsah, například k nastavení specifických DRM vlastností, jako je „content type. Byla deklarována podpora následujících typů obsahu: none (žádné informace o typu dat), photo (výstup digitálních fotografií, vyžadující minimální zpracování), video (video nebo animace, vyžadující přesnější synchronizaci, aby se vyloučila trhání) a game (spouštění her, vyžadující výstup s minimální latencí).
  • ext-idle-notify — dává možnost kompozitním serverům předávat klientům oznámení o neaktivitě uživatele, což může být využito k aktivaci dalších režimů úspor energie po určité době neaktivity.
  • tearing-control — umožňuje vypnout vertikální synchronizaci (VSync) s rámcovým hlemýžděm ve fullscreen aplikacích, používanou k ochraně proti trhání při vykreslování. V multimediálních aplikacích je výskyt artefaktů z trhání nežádoucím efektem, ale v herních programech lze s artefakty smířit, pokud boj proti nim přináší dodatečné zpoždění.
  • ext-foreign-toplevel-list — získání informací o površích umístěných na nejvyšší úrovni (toplevel), které umožňují organizovat uchycení oken nad jiným obsahem, například pro připojení vlastních panelů a přepínačů oken.
  • security-context — umožňuje identifikaci klientů využívajících sandboxovou izolaci. Klient může zaregistrovat nové připojení k kompozitnímu serveru založenému na Waylandu a připojit k němu bezpečnostní kontext, po kterém kompoziční správce podle zadaného bezpečnostního kontextu omezí možnosti dostupné pro ustanovené spojení.
  • cursor-shape — alternativní způsob nastavení vzhledu kurzoru, založený na posílání série obrazů kurzoru místo vazby na povrch (wl_surface).
  • „ext-transient-seat“ je určen k vytváření dočasných nezávislých sezení (seat), určených k použití společně s virtuálními vstupními zařízeními. Například při zavádění možnosti připojení k vzdálené ploše protokol umožňuje vytvořit pro každého uživatele samostatné sezení s virtuální klávesnicí a myší.
  • «xdg-toplevel-drag» — rozšiřuje mechanismus „drag & drop“ o možnost připojení horních úrovňových oken k operaci přesunutí, což může být využito například pro organizaci přetahování myší panelů nástrojů nebo záložek prohlížeče. Nový protokol umožňuje vytváření odpojovatelných částí okna, které při přetahování z tohoto okna se stávají novými okny a mohou se pohybovat nad existujícím oknem před opětovným připojením.
  • «xdg-dialog» — umožňuje přiřazovat povrchům horní úrovně specifické vlastnosti pro dialogová okna, například lze vytvářet modální dialogy, které blokují interakci uživatele s ostatními částmi rozhraní.
  • „linux-drm-syncobj“ - poskytuje nástroje pro explicitní synchronizaci bufferů pomocí objektů synchronizace DRM (Direct Rendering Manager). Předpokládá se, že v kontextu synchronizace při vykreslování do bufferu umožní navržený protokol zlepšit práci s ovladači založenými na grafických API Vulkan a OpenGL (implementace je založena na zpracovatelích v ovladačích). Nový protokol dává možnost zajistit, že operace vykreslování do bufferu byla dokončena dříve, než kompoziční manažer tento buffer zobrazí.
  • alpha-modifier, který umožňuje klientům měnit úroveň průhlednosti povrchu a delegovat operace zajištění průhlednosti na stranu kompozičního serveru, který je může předat KMS.
  • xdg-toplevel-icon — vazba ikony na vrchní okno.
  • ext-image-capture-source a ext-image-copy-capture — organizace záznamu obsahu vykreslovaného na obrazovce.

Protokoly vyvíjené ve větvi „unstable“:

  • „fullscreen-shell“ — správa provozu v režimu celé obrazovky.
  • „input-method“ — zpracování metod vkládání.
  • „idle-inhibit“ — blokace spuštění spořiče obrazovky.
  • „input-timestamps“ — časové značky pro události vstupu.
  • „keyboard-shortcuts-inhibit“ — správa přiřazení klávesových zkratek a horkých kláves.
  • „linux-explicit-synchronization“ — specifický pro Linux mechanismus synchronizace vyrovnávacích pamětí vázaný na plochu.
  • „pointer-gestures“ — správa příkazů z dotykových obrazovek.
  • „pointer constraints“ — omezení ukazatelů (blokace).
  • „primary-selection“ — analogicky k X11 zajišťuje funkčnost primární schránky (primary selection), jejíž informace se obvykle vkládají prostředními tlačítky myši.
  • „relative pointer events“ — relativní události ukazatelů.
  • „text-input“ — organizace textového vkládání.
  • „xdg-foreign“ — rozhraní pro interakci s plochami „sousedního“ klienta.
  • „xdg-decoration“ — vykreslování dekorací oken na straně serveru.
  • „xdg-output“ — další informace o video výstupu (používá se pro zlomkové škálování).
  • „xwayland-keyboard-grab“ — zachycení vstupu v aplikacích XWayland.

Dále lze zmínit návrh zaměstnance společnosti Valve na přidání další fáze pro schvalování nových protokolů Wayland — „experimental“, která má snížit překážky pro zahrnutí protokolů do sady Wayland-Protocols a urychlit jejich zavádění. V současnosti je pro zařazení protokolu do fáze staging nutné vytvořit podpůrný tým a získat určité množství potvrzení (ACK) od účastníků revize. V „experimental“ se navrhuje přijímat protokoly nikoli prostřednictvím získání potvrzení, ale na základě absence námitek (NACK) během dvoutýdenního revizního období. V případě potřeby mohou účastníci revize také prodloužit diskusi o další dva týdny tím, že stanoví status „WAIT“.

Ve fázi „experimental“ se také navrhuje povolit změny porušující kompatibilitu a přidávání „syrových“ protokolů, které mohou být postupně dováděny k požadované úrovni. Tímto způsobem fáze „experimental“ umožní rychle přenášet nové prototypy protokolů vývojářům, podněcovat jejich implementaci v existujících projektech a získávat zpětnou vazbu od uživatelů. Navrhovaný proces by měl zbavit vývojáře protokolů dlouhých diskuzí a byrokracie před přijetím do sady Wayland-Protocols. Například protokoly xdg-system-bell, fifo a commit-timing přijaté v této verzi byly diskutovány více než rok.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster