KWinFT, Wayland рдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд KWin рдХреЛ рдлреЛрд░реНрдХ, рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдпреЛ

рд░реЛрдорди рдЧрд┐рд▓реНрдЧ, рд╕рд╣рднрд╛рдЧреА рдХреЗрдбреАрдИ, рд╡реЗрд▓реНрдпрд╛рдгреНрдб, рдПрдХреНрд╕рд╡реЗрд▓реНрдпрд╛рдгреНрдб рд░ рдПрдХреНрд╕ рд╕рд░реНрднрд░рдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛, рдкрд░рд┐рдЪрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ KWinFT (KWin рдлрд╛рд╕реНрдЯ рдЯреНрд░реНрдпрд╛рдХ), рдХреЛрдбрдмреЗрд╕рдорд╛ рдЖрдзрд╛рд░рд┐рдд Wayland рд░ X11 рдХреЛ рд▓рд╛рдЧрд┐ рд▓рдЪрд┐рд▓реЛ рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдХрдореНрдкреЛрдЬрд┐рдЯ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдмрдиреНрдзрдХ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИ рдХреЗрд╡рд┐рдиред рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдмрдиреНрдзрдХрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрдирд┐ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ рд░реНтАНрдпрд╛рдкрд▓реНрдпрд╛рдгреНрдб Qt/C++ рдХреЛ рд▓рд╛рдЧрд┐ libwayland рдорд╛ рдмрд╛рдЗрдиреНрдбрд┐рдЩрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде, рдирд┐рд░рдиреНрддрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗрдбреАрдИрд▓реНрдпрд╛рдгреНрдб, рддрд░ Qt рдорд╛ рдмрдиреНрдзрдирдмрд╛рдЯ рдореБрдХреНрддред рдХреЛрдб GPLv2 рд░ LGPLv2 рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред

рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рдХреНрд╖реНрдп KWin рд░ KWayland рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛ
рдЖрдзреБрдирд┐рдХ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рд░ рд╡рд┐рдХрд╛рд╕ рдЕрднреНрдпрд╛рд╕рд╣рд░реВ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди, рдХреЛрдб рд░рд┐рдлреНрдпрд╛рдХреНрдЯрд░ рдЧрд░реНрди, рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдердкреНрди рд░ рдЖрдзрд╛рд░рднреВрдд рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВрдХреЛ рдердкрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕рдХреЛ рд╣рд╛рд▓рдХреЛ рд░реВрдкрдорд╛ KWin рдорд╛ рдПрдХреАрдХрд░рдг рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рдЫред KWinFT рд░ Wrapland рдирд┐рд░реНрдмрд╛рдз рд░реВрдкрдорд╛ KWin рд░ KWayland рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рддрд┐рдиреАрд╣рд░реВ рдзреЗрд░реИ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдХреЛ KWin рд▓рдХ-рдЗрди рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдЫреИрдирдиреН рдЬрд╣рд╛рдБ рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрдиреЗ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛ рдЬрд╕рд▓реЗ рдирд╡реАрдирддрд╛рд▓рд╛рдИ рдЕрдЧрд╛рдбрд┐ рдмрдвреНрдирдмрд╛рдЯ рд░реЛрдХреНрдЫред

KWinFT рдХреЛ рд╕рд╛рде, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд╕рдБрдЧ рдердк рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдерд┐рд░рддрд╛ рдХрд╛рдпрдо рдЧрд░реНрджреИ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реНрд╡рддрдиреНрддреНрд░ рд╣рд╛рдд рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, KWinFT рдХреЛрдб рдЬрд╛рдБрдЪ рдЧрд░реНрди, рдПрдХ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рдорд╛ рд╡рд┐рднрд┐рдиреНрди linters рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдЕрд╕реЗрдореНрдмрд▓реАрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрддреНрдкрд╛рджрди рд░ рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, KWinFT рдХреЛ рдореБрдЦреНрдп рдлреЛрдХрд╕ рдЙрдЪреНрдЪ-рдЧреБрдгрд╕реНрддрд░ рд░ рдкреВрд░реНрдг рдкреНрд░реЛрдЯреЛрдХрд▓ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрдирдорд╛ рд╣реБрдиреЗрдЫред
Wayland, Wayland рд╕рдВрдЧ рдПрдХреАрдХрд░рдг рдЬрдЯрд┐рд▓ рдмрдирд╛рдЙрдиреЗ KWin рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреБрди: рдХрд╛рд░реНрдп рд╕рд╣рд┐рддред

KWinFT рдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдердкрд┐рдПрдХрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ рдордзреНрдпреЗ:

  • рдХрдореНрдкреЛрдЬрд┐рдЯрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреБрди: рдХрд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ X11 рд░ Wayland рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рд╕рд╛рдордЧреНрд░реАрдХреЛ рд░реЗрдиреНрдбрд░рд┐рдЩрдорд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░ рдЧрд░реЗрдХреЛ рдЫред рдердк рд░реВрдкрдорд╛, рдЫрд╡рд┐рдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд░ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдпрд╕рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдмреАрдЪрдХреЛ рдврд┐рд▓рд╛рдЗ рдХрдо рдЧрд░реНрди рдЯрд╛рдЗрдорд░ рдердкрд┐рдПрдХреЛ рдЫред
  • Wayland рдкреНрд░реЛрдЯреЛрдХрд▓рдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ "рджрд░реНрд╢рдХ", рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓рд╛рдИ рд╕рд░реНрднрд░-рд╕рд╛рдЗрдб рд╕реНрдХреЗрд▓рд┐рдЩ рд░ рд╕рддрд╣ рдХрд┐рдирд╛рд░рд╛рд╣рд░реВрдХреЛ рдЯреНрд░рд┐рдорд┐рдЩ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред XWayland рдХреЛ рдЕрд░реНрдХреЛ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрдХреЛ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд, рд╡рд┐рд╕реНрддрд╛рд░рд▓реЗ рдкреБрд░рд╛рдирд╛ рдЦреЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдХреНрд░рд┐рди рд░рд┐рдЬреЛрд▓реНрдпреБрд╕рди рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЕрдиреБрдХрд░рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗрдЫред
  • Wayland-рдЖрдзрд╛рд░рд┐рдд рд╕рддреНрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдШреБрдорд╛рдЙрдиреЗ рд░ рдорд┐рд░рд░рд┐рдЩ рдЖрдЙрдЯрдкреБрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдердиред

Wrapland рд▓реЗ Qt-рд╢реИрд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ C++ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рд░реВрдкрдорд╛ libwayland рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред Wrapland рдореВрд▓рддрдГ KWayland рдХреЛ рдПрдХ рдХрд╛рдБрдЯрд╛ рдХреЛ рд░реВрдк рдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИрдПрдХреЛ рдерд┐рдпреЛ, рддрд░ KWayland рдХреЛрдб рдХреЛ рдЕрд╕рдВрддреЛрд╖рдЬрдирдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрд╛рд░рдг, рдпреЛ рдЕрдм KWayland рдХреЛ рдкреВрд░реНрдг рд░реВрдк рдорд╛ рдУрднрд░рд╣рд╛рд▓ рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд░реВрдк рдорд╛ рдорд╛рдирд┐рджреИрдЫред Wrapland рд░ KWayland рдмреАрдЪрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд┐рдиреНрдирддрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдпреЛ рдЕрдм Qt рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдЫреИрди рд░ Qt рд╕реНрдерд╛рдкрдирд╛ рдирдЧрд░реА рдЫреБрдЯреНрдЯреИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рднрд╡рд┐рд╖реНрдпрдорд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ libwayland C API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрджреИ, Wrapland рд▓рд╛рдИ C++ API рд╕рдБрдЧ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рддрдпрд╛рд░-рдмрдирд╛рдЗрдПрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ Manjaro Linux рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред KWinFT рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рдХреЗрд╡рд▓ рднрдгреНрдбрд╛рд░рдмрд╛рдЯ kwinft рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдорд╛рдирдХ KWin рдорд╛ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрди, kwin рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред Wrapland рдХреЛ рдкреНрд░рдпреЛрдЧ KDE рдорд╛ рд╕реАрдорд┐рдд рдЫреИрди, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдорд╛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ wlroots рдЖрдЙрдЯрдкреБрдЯ рдХрдиреНрдЯреНрд░реЛрд▓ рдкреНрд░реЛрдЯреЛрдХрд▓, wlroots рдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╕рдордЧреНрд░ рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ (рд╕реНрд╡рд╛рдпрддреНрдд, рд╡реЗрдлрд╛рдпрд░) рдЖрдЙрдЯрдкреБрдЯ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди рдХреЗрдбреАрдИ рд╕реНрдХреНрд░рд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдпрд╕реИ рдмреАрдЪ рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдиреЗрдЫ рдХреЗрдбреАрдИ рд╡рд┐рди-рдХрдо рд╡рд┐рд▓рдореНрдмрддрд╛, рдЗрдиреНрдЯрд░рдлреЗрд╕рдХреЛ рдЙрддреНрддрд░рджрд╛рдпрд┐рддреНрд╡ рдмрдврд╛рдЙрди рдкреНрдпрд╛рдЪрд╣рд░реВрд╕рд╣рд┐рдд KWin рдХрдореНрдкреЛрдЬрд┐рдЯ рдкреНрд░рдмрдиреНрдзрдХрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдЙрдБрджреИ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рдЧрддрд┐рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХреЗрд╣реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди, рдЬрд╕реНрддреИ рдЗрдирдкреБрдЯ рд╕реНрдЯрдЯрд░рд┐рдЩред DRM VBlank рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, KWin-lowlatency рд▓реЗ glXWaitVideoSync, glFinish рд╡рд╛ NVIDIA VSync рдХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛рд▓рд╛рдИ рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрд╕рд░ рдирдЧрд░рд┐рдХрди рдлрд╛рдбреНрдиреЗ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ (KWin рдХреЛ рдореМрд▓рд┐рдХ рдЯрд┐рдпрд░рд┐рдЩ рд╕реБрд░рдХреНрд╖рд╛ рдЯрд╛рдЗрдорд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдареВрд▓рд╛ рд▓реЗрдЯрдиреНрд╕реАрд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫ (50ms рд╕рдореНрдо)ред рд░, рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЗрдирдкреБрдЯ рдЧрд░реНрджрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдорд╛ рдврд┐рд▓рд╛рдЗ)ред рдХреЗрдбреАрдИ рдкреНрд▓рд╛рдЬреНрдорд╛ рел.резрео рдорд╛ рд╕реНрдЯрдХ рдХрдореНрдкреЛрдЬрд┐рдЯ рд╕рд░реНрднрд░рдХреЛ рд╕рдЯреНрдЯрд╛ рдХреЗрдбреАрдИ-рд▓реЛрд▓реЗрдЯреЗрдиреНрд╕реАрдХреЛ рдирдпрд╛рдБ рд░рд┐рд▓реАрдЬрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди