Wayland дээр төвлөрсөн KWin-ийн салаа KWinFT-ийг танилцууллаа

Роман Гилг, оролцож байна KDE, Wayland, Xwayland, X Server програмуудыг хөгжүүлж, танилцуулав ноорог KWinFT (KWin Fast Track), кодын бааз дээр суурилсан Wayland болон X11-д зориулсан уян хатан, хэрэглэхэд хялбар нийлмэл цонхны менежерийг хөгжүүлж байна. КВин. Төслийн хүрээнд цонхны менежерээс гадна номын санг хөгжүүлдэг ороосон газар Qt/C++ нь libwayland гаруй заавал биелүүлэх нь, үргэлжлүүлэн хөгжүүлэх КВэйланд, гэхдээ Qt-тай холбогдохоос чөлөөлөгдсөн. Энэ кодыг GPLv2 болон LGPLv2 лицензийн дагуу түгээдэг.

Төслийн зорилго нь KWin болон KWayland ашиглан дахин боловсруулах явдал юм
Төслийн хөгжлийг хурдасгах, кодыг дахин өөрчлөх, оновчлолыг нэмэх, үндсэн инновацийг хялбаршуулах боломжийг олгодог орчин үеийн технологи, хөгжлийн практикууд нь одоогийн байдлаар KWin-д нэгтгэх нь хэцүү байдаг. KWinFT болон Wrapland нь KWin болон KWayland-ийг орлуулах боломжтой боловч тэдгээр нь олон бүтээгдэхүүний KWin түгжээгээр хязгаарлагдахгүй бөгөөд бүрэн нийцтэй байх нь инновацийг урагшлуулахаас сэргийлдэг тэргүүлэх чиглэл юм.

KWinFT-ийн тусламжтайгаар хөгжүүлэгчид илүү орчин үеийн хөгжүүлэлтийн техникийг ашиглан тогтвортой байдлыг хадгалахын зэрэгцээ шинэ боломжуудыг туршиж үзэх боломжтой. Жишээлбэл, KWinFT кодыг шалгахын тулд янз бүрийн линтер ашиглан баталгаажуулах, угсралтыг автоматаар үүсгэх, дэвшилтэт туршилтыг багтаасан тасралтгүй нэгтгэх системийг ашигладаг. Үйл ажиллагааны хөгжлийн хувьд KWinFT-ийн гол анхаарал нь өндөр чанартай, бүрэн протоколын дэмжлэг үзүүлэх болно.
Wayland, үүнд Wayland-тай нэгтгэхэд хүндрэл учруулдаг KWin-ийн архитектурын шинж чанаруудыг дахин боловсруулж байна.

KWinFT-д аль хэдийн нэмсэн туршилтын шинэлэг зүйлүүдийн дунд:

  • Нэгтгэх процессыг дахин боловсруулсан бөгөөд энэ нь X11 болон Wayland дээр ажиллаж байгаа контентын дүрслэлийг ихээхэн сайжруулсан. Нэмж дурдахад зураг үүсгэх болон дэлгэцэн дээр харуулах хоорондох саатлыг багасгахын тулд таймер нэмсэн.
  • Wayland протоколын өргөтгөлийг хэрэгжүүлсэн "үзэгч", үйлчлүүлэгчид гадаргуугийн ирмэгийг сервер тал дээр масштаблах, тайрах боломжийг олгодог. XWayland-ийн дараагийн томоохон хувилбартай хослуулан өргөтгөл нь хуучин тоглоомуудын дэлгэцийн нягтралын өөрчлөлтийг дуурайх боломжийг олгоно.
  • Wayland-д суурилсан сешнүүдийн гаралтыг эргүүлэх, толин тусгал болгох бүрэн дэмжлэг.

Wrapland нь C++ төслүүдэд ашиглахад хялбар хэлбэрээр libwayland функцуудад хандах боломжийг олгодог Qt загварын програмчлалын интерфейсээр хангадаг. Wrapland-ыг анх KWayland-ийн салаа болгон хөгжүүлэхээр төлөвлөж байсан боловч KWayland кодын хангалтгүй байдлаас шалтгаалан одоо KWayland-ийг бүрэн шинэчлэх төсөл гэж үзэж байна. Wrapland болон KWayland хоёрын хамгийн чухал ялгаа нь Qt-тэй холбогдохоо больсон бөгөөд Qt-г суулгахгүйгээр тусад нь ашиглах боломжтой юм. Ирээдүйд Wrapland-ийг C++ API бүхий бүх нийтийн номын сан болгон ашиглаж болох бөгөөд ингэснээр хөгжүүлэгчид libwayland C API ашиглах шаардлагагүй болно.

Бэлэн багцуудыг Manjaro Linux хэрэглэгчдэд зориулан бүтээсэн. KWinFT-г ашиглахын тулд репозитороос kwinft-г суулгаж, стандарт KWin руу буцахын тулд kwin багцыг суулгана уу. Wrapland-ийн хэрэглээ нь зөвхөн KDE-ээр хязгаарлагдахгүй, жишээлбэл, үйлчлүүлэгчийн програмыг ашиглахаар бэлтгэсэн wlroots Wlroots дээр суурилсан нийлмэл серверүүдийг ашиглахыг зөвшөөрдөг гаралтын хяналтын протокол (Явж байна, Зам тээврийн хэрэгсэл) гаралтыг тохируулахын тулд KScreen ашиглана уу.

Энэ хооронд үргэлжлүүл төслийн шинэчлэлийг нийтлэх болно KWin-бага хоцролт, интерфэйсийн хариу үйлдлийг нэмэгдүүлэх, оролтын гацах зэрэг хэрэглэгчийн үйлдэлд хариу өгөх хурдтай холбоотой зарим асуудлыг засахын тулд засварууд бүхий KWin нийлмэл менежерийн хэвлэлийг бий болгосон. DRM VBlank-аас гадна KWin-lowlatency нь хариу үйлдэл үзүүлэх чадварт сөргөөр нөлөөлөхгүйгээр урагдахаас хамгаалахын тулд glXWaitVideoSync, glFinish эсвэл NVIDIA VSync-ийг ашиглахыг дэмждэг (KWin-ийн анхны нулимсны хамгаалалт нь таймер ашиглан хийгдсэн бөгөөд их хэмжээний хоцролт (50 мс хүртэл гаралт) үүсгэж болно) Үүний үр дүнд оролт хийх үед хариу үйлдэл хойшлогдох). KDE Plasma 5.18 дахь хувьцааны нийлмэл серверийн оронд KWin-lowlatency-ийн шинэ хувилбаруудыг ашиглаж болно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх