Հրապարակվել է wayland-protocols 1.38 փաթեթի թողարկումը, որը պարունակում է Wayland հիմնական պրոտոկոլը լրացնող պրոտոկոլների և ընդլայնումների շարք, որոնք անհրաժեշտ են կոմպոզիտորային սերվերների և օգտագործողի միջավայրերի կառուցման համար:
Բոլոր պրոտոկոլները անցնում են երեք փուլ. մշակման, փորձարկման և կայունացման: Մշակումից հետո (unstable կատեգորիա) պրոտոկոլը տեղափոխվում է «staging» ճյուղ և պաշտոնապես ընդգրկվում է wayland-protocols փաթեթի մեջ, իսկ փորձարկման ավարտից հետո տեղափոխվում է կայուն կատեգորիայի: «Staging» կատեգորիայի պրոտոկոլները արդեն կարելի է կիրառել կոմպոզիտորային սերվերներում և հաճախորդներում, որտեղ անհրաժեշտ է առնչվող գործառույթ: Փոփոխությունների, որոնք կնախացնեն անհամահունչություն, կատարումը «staging»-ում արգելված է, սակայն խնդիրների և բացթողումների հայտնաբերման դեպքում փորձարկման ընթացքում, մեզ տրամադրվում է նոր նշանակալի տարբերակի կամ մեկ այլ Wayland-ուղարկվածման փոխարինման հնարավորություն:
Նոր տարբերակում «staging» կատեգորիա է ավելացվել պրոտոկոլներ:
- xdg-system-bell — թույլ է տալիս արտադրել համակարգային ազդանշան, որը կարող է օգտագործվել, օրինակ, որպես նախազգուշացում համակարգային տերմինալային էմուլյատորում: Արդյունքի ձևը որոշվում է կոմպոզիտորային կառավարման կողմից, դա կարող է լինել ոչ միայն աղեր, այլ նաև տեսողական արձագանքը:
- fifo — իրականացնում է FIFO մեխանիզմ (առաջինը եկել է, առաջնությանը) տպաչափման գծի թարմացման очередь: Նվազագույն ծնկների միջից, պրոտոկոլը թույլ է տալիս օգտագործել դիտումը ճ Vertical sync (vblank) ավարտի փոխարեն, երկրորդ դեպքում որակով, ինչը լուծում է բարձր բեռնվածության խնդիրը GPU-ի VSync-ի ժամանակ:
- commit-timing — թույլ է տալիս կցել ժամանակի սահմանափակումներին, որոնք միանում են մակերեսի բովանդակությանը (կոմպոզիտորային սերվերը պետք է ներկայացնի բովանդակության փոփոխությունը հնարավորինս նշված ժամանակից, բայց ոչ շուտ):
Այս պահին wayland-protocols հավաքում ընդգրկված են հետևյալ կայուն պրոտոկոլները, որոնք ապահովում են հետադարձ համամատելիություն։
- «viewporter» — թույլ է տալիս հաճախորդին իրականացնել մակերեսի մասշտաբավորման և տրամագծերի կտրում գործողություններ սերվերի կողմից։
- «presentation-time» — ապահովում է վիդեո ցուցադրում:
- «xdg-shell» — մակերեսների ստեղծման և նրանց հետ փոխազդելու ինտերֆեյս, որը թույլ է տալիս դրանք տեղաշարժել էկրանին, minimize անել, maximize անել, չափը փոխել և այլն։
- «linux-dmabuf» — աջակցում է բազմաթիվ վիդեոկարտերի համատեղ օգտագործման ֆունկցիոնալությանը DMA-BUF տեխնոլոգիայի միջոցով (թույլ է տալիս ստեղծել wl_buffer DMA-BUF բազայի վրա):
- «tablet» — կազմակերպում է մուտքը գրաֆիկական պլանշետներից:
«Staging» ճյուղում փորձարկվող պրոտոկոլներ:
- drm-lease — տրամադրում է անհրաժեշտ ռեսուրսները 3D պատկերների ձևավորման համար տարբեր բուֆերներով ձախ և աջ աչքերի համար վիրտուալ իրադարձությունների ժամանակ:
- «ext-session-lock» — որոշում է սեսիայի արգելակման միջոցները, օրինակ, էկրանային պահելու կամ ունայնության դիալոգի ժամանակ:
- «single-pixel-buffer» — թույլ է տալիս ստեղծել մեկ պիքսելային բուֆերներ, որոնք ներառում են չորս 32-բիթյա RGBA արժեք:
- «xdg-activation» — տարբեր մակերեսների միջև կենտրոնացումը փոխանցելու հնարավորություն (օրինակ, xdg-activation-ի միջոցով մեկ ծրագիրը կարող է սեղմել կենտրոնացումը մյուսի վրա):
- content-type — հաճախորդներին թույլ է տալիս տվյալ կոմպոզիտային ժամանակի սերվերին ցուցադրվող պարունակության մասին տեղեկություններ, որոնք կարող են օգտագործվել պարունակության վրա հիմնված վարքագծի օպտիմացման համար, օրինակ, հատուկ DRM հատկությունների նշման համար, ինչպիսիք են «content type»: Հայտարարվում է հետևյալ պարունակության տեսակների աջակցությունը՝ none (մենք չունենք տվյալների տիպի մասին տեղեկություններ), photo ( թվային լուսանկարների ցուցադրություն, որը պահանջում է նվազագույն մշակման), video (վիդեո կամ անիմացիա, պահանջում է ավելի ճշգրտված սինխրոնացում, որպեսզի բացառվեն ուշացումներ) և game (խաղերի սկսումը, պահանջում է ցուցադրում նվազագույն ուշացմամբ):
- ext-idle-notify — հնարավորություն է տալիս կոմպոզիտային սերվերներին հաճախորդներին ուղարկել սնությունևա հատկությունների մասին տեղեկություններ, որոնք կարող են օգտագործվել էկրանների էներգիայի տնտեսման ակտիվացման համար կարգավորումը և այլն:
- tearing-control — հնարավորություն է տալիս անջատել լիարժեք էկրանի ծրագրերում ուղղահայաց սինխրոնացումը (VSync)՝ օգտագործելով կադրերի խցկման ազդանշանը, որը կիրառվում է ցուցադրման ժամանակ ընկալելուց խուսափելու համար (tearing): Մուլտիմեդիա հավելվածներում խցկման կամ վատ գործելու պատճառով առաջացած արդյունքների առկայությունն արհեստական է, սակայն խաղային ծրագրերում, որտեղ արհեստականները կարող են ներառում, կարելի է համարվել, որ այդչափ արդյունավետությունը թույլ է տալիս ավելի երկար սպասելուց առաջ:
- ext-foreign-toplevel-list — տեղեկատվություն ստանալու հնարավորություն ունեք առավելագույն մակարդակում (toplevel) տեղադրված մակերեսների մասին, որոնք թույլ են տալիս կազմակերպել պատուհանների ֆիքսումը այլ պարունակության վերևում, օրինակ, սեփական պանելների և պատուհանSwitcher-ների միացման համար:
- security-context — հնարավորություն է տալիս նույնականացնել հաճախորդներին, ովքեր օգտագործում են sandbox-են մեկուսացում: Հաճախորդը կարող է գրանցել նոր միացում կոմպոզիտային սերվերին հիմնված Wayland-ի վրա և կապել նրան անվտանգության համատեքստ, այնպես որ, ըստ նշված անվտանգության համատեքստի կոմպոզիտային կառավարիչը սահմանափակի հնարավորությունները, որոնք հասանելի են տեղադրված միացման:
- cursor-shape — կուրսորի տեսքը ձևավորելու այլընտրանքային միջոց, հիմնված կուրսորի պատկերների շարքի передачи վրա, այլ ոչ թե մակերեսին (wl_surface) կապելու:
- «ext-transient-seat» — նախատեսված է ժամանակավոր անկախ նստավայրերի (seat) ստեղծման համար, նախատեսված վիրտուալ մտքի սարքերի հետ միասին. օրինակ, արդյունաբերությունների կապվելու հնարավորություն: մերժման desktop պրոտոկոլը թույլ է տալիս յուրաքանչյուր օգտվողի համար առանձին նստավայր ստեղծել վիրտուալ ստեղնավերի և մկնիկի համար:
- «xdg-toplevel-drag» — ընդլայնում է «drag & drop» մեխանիզմը, մատակարարելով բարձր մակարդակի պատուհանների կցման հնարավորությունն շարժման գործողությանը, ինչի շնորհիվ կարելի է կազմակերպել տարբեր Ֆոնտերի կամ էջանշվող թերթիկների քաշում մկնիկով: Նոր պրոտոկոլը թույլ է տալիս ստեղծել առանձնացված պատուհանային մասեր, որոնք երբ քաշվում են այդ պատուհանից, դառնում են նոր պատուհաններ և կարող են տեղափոխվել գոյություն ունեցող պատուհանի վերևում՝ նորից կցելու համար.
- «xdg-dialog» — թույլ է տալիս վերին մակերեսներին նշանակել բարձր մակարդակի, առանձնահատուկ նշաններ, օրինակ՝ կարելի է ստեղծել մոդալային զրույցներ, որոնք արգելում են օգտախաղարկողի միջամտությունը ճիշտ ձևաչափի մյուս մասերի.
- «linux-drm-syncobj» — տրամադրում է գործիքներ տեսանելի ստացվող նիշերի հստակ կառավարման համար DRM (Direct Rendering Manager) տեսարանների միջոցով: Թվալարու համատեքստի շրջանակներում, երբ նշվածը տեսանյութային բոքֆերում նկարահանելու հարցում, առաջարկվող պրոտոկոլը կբարելավի Vulkan և OpenGL գրաֆիկական API-ների վրա հիմնված անբավարարումները (իրականացումը հիմնված է դրայվերների վերաներադարձողների վրա): Նոր պրոտոկոլն ապահովում է, որ նկարչական գործողությունը մինչև բոքֆերին ցուցադրվելու ժամանակ ավարտված լինի.
- Alpha-modifier, որը թույլ է տալիս հաճախորդներին փոխել մակերեսի թափանցիկության մակարդակը եւ իրականացնել թափանցիկության ապահովման գործողությունները կոմպոզիտիկ սերվերի կողմից, որը կարող է վերաֆորմացնել այդ գործողությունները KMS-ի:
- xdg-toplevel-icon — մակերեսի բարձր մակարդակի պատկերակը կցելը.
- ext-image-capture-source եւ ext-image-copy-capture — կազմակերպել էկրանին արտադրվող պարունակության շնորհաթողումը.
Պրոտոկոլները, որոնք մշակվում են «unstable» ճյուղում:
- «fullscreen-shell» — կատարում է ամբողջական էկրանային ռեժիմի կառավարում:
- «input-method» — տարրեր առաջնորդելու մեթոդները մշակման.
- «idle-inhibit» — արգելում է էկրանի պահպանման սկիզբը.
- «input-timestamps» — անդրադարձներ մուտքագրման իրադարձությունների համար.
- «keyboard-shortcuts-inhibit» — կառավարում է ստեղնային կարճ որոշումների և արագ ձայնագրման համակցությունների կցումները.
- «linux-explicit-synchronization» — Linux-ի հայեցակարգի մեջ միասնական կարգավորումներ, առնջություն մակերեսին.
- «pointer-gestures» — կառավարում է դիպչող էկրաններից.
- «pointer constraints» — նշումների սահմանափակումներ (արգելում):
- «primary-selection» — նիստական X11 դուք անձամբ ապահովում է առաջնային փոխանակումն (primary selection), որի տեղեկատվությունն սովորաբար ստացվում է միջին մկնիկի միջոցով.
- «relative pointer events» — հարաբերական նշման իրադարձություններ.
- «text-input» — բաժնավորում է տեքստի մուտքը.
- «xdg-foreign» — «սահմանի» հաճախորդի մակերեսների հետ փոխազդեցության ինտերֆեյս:
- «xdg-decoration» — պատուհանների ոտանավորների թաքցման նկարչություն սերվերի կողմից:
- «xdg-output» — լրացուցիչ տեղեկություններ տեսադիոգրտորքի մասին (օգտագործվում է կոտրված մասշտաբավորման համար).
- «xwayland-keyboard-grab» — XWayland ծրագրերում մուտքի բռնում։
Ավելացված է Valve ընկերության աշխատակիցների առաջարկը Wayland նոր պրոտոկոլների առաջխաղացման համար մեկ այլ փուլ ՝ «experimental», որը կրճատելու է պրոտոկոլների Wayland-Protocols հավաքածուին ներառվելու խոչընդոտները և արագացնելու է դրանց ներդրումը: Հիմա պրոտոկոլի ստաժավորման փուլ անցնելու համար անհրաժեշտ է կազմել աջակցության թիմ և ստանալ որոշակի քանակի հաստատումներ (ACK) վերանայող մասնակիցներից: «Experimental» փուլում առաջարկվում է պրոտոկոլը ընդունելու ոչ թե հաստատումների, այլ երկու շաբաթվա վերանայման ընթացքում հակառակ意见երի (NACK) բացակայության հիման վրա: Երկ 필요ության դեպքում, վերանայող մասնակիցները կարող են քննարկումը ևս երկու շաբաթով երկարաձգել `«WAIT» կարգավիճակ սահմանելով:
«Experimental» փուլում առաջարկվում է նաև թույլ տալ համատեղելիության խախտումներով փոփոխություններ կատարելը և «կիսավարտ» պրոտոկոլների ավելացումը, որոնք աստիճանաբար կարող են հասցվել համապատասխան մակարդակի: Այդպիսով, «experimental» փուլը արագ կավելացնի նոր պրոտոտիպի պրոտոկոլները մշակողներին, խթանելու է դրանց իրականացումը արդեն իսկ գործող նախագծերում և կստանա օգտվողների հետադարձ կապը: Առաջարկվող գործընթացը պետք է ազատի պրոտոկոլների մշակողներին երկար քննարկումներից և քաշքերից Wayland-Protocols-ի կազմում ընդունելուց առաջ: Օրինակ, ներկա թողարկման ընդունված xdg-system-bell, fifo և commit-timing պրոտոկոլները քննարկվել են ավելի քան մեկ տարի:
Ընտանիք: opennet.ru
