Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Valve ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ frog-protocols, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Π΄Π»Ρ Wayland, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° wayland-protocols, ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Wayland-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΊ Wayland ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ ΠΈ Π±ΡΠΊΡΡΡΡΠΈΠΌ Π² Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΏΡΠΈΠ½ΡΡΠΈΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Π² wayland-protocols, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΠ³ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΌΠ΅ΡΡΡΡ ΠΈ Π³ΠΎΠ΄Ρ.
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ frog-protocols ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ Π΄ΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π΄ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅ — ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° X11 ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ, Π½ΠΎ ΠΏΠΎ ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π΅Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. ΠΠΎΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ frog-protocols ΡΠΆΠ΅ ΠΏΡΠΈΠ½ΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Arch Linux, Fedora 41 ΠΈ Fedora 40, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΎΡΡΠ°Π² openSUSE.
ΠΠ΅ΡΠ²ΡΠΌΠΈ Π΄Π²ΡΠΌΡ Wayland-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠΌΠΈ Π² ΡΠΎΡΡΠ°Π² frog-protocols, ΡΡΠ°Π»ΠΈ frog-fifo-v1 ΠΈ frog-color-management-v1. ΠΡΠΎΡΠΎΠΊΠΎΠ» frog-color-management Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ HDR Π² ΠΈΠ³ΡΠ°Ρ . ΠΡΠΎΡΠΎΠΊΠΎΠ» frog-fifo ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ, Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π²Π°ΠΆΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ΅ΡΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Π½Π° GPU ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ VSync, ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΈΡ ΠΎΠΊΠΎΠ½ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠΌ FIFO/VSync.
ΠΠΎΠ΄ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° frog-fifo ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΡΠ°Π² Mesa. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° KWin, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ KDE. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΆΠ΅ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½Π° Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΈ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ SteamOS (Steam Deck) ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Gamescope. ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Wayland-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ FIFO Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΊ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·Π²ΡΡΡΠΊΠΈ (vblank) Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ callback-Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ°Π΄Ρ.
Π Ρ
ΠΎΠ΄Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² Mesa ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π‘ΠΈΠΌΠΎΠ½ Π‘Π΅Ρ (Simon Ser), ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² wlroots, Π²ΡΡΠ°Π·ΠΈΠ» ΡΠΎΠΌΠ½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΡ
Π² ΠΎΠ±Ρ
ΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ wayland-protocols ΠΈΠ»ΠΈ Π½Π΅ ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΡ
ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡ Wayland-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. ΠΡΠ΅Ρ-ΠΡ ΠΡΠΈΡΡΠ΅ (Pierre-Loup Griffais) ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Valve ΠΎΡΠ²Π΅ΡΠΈΠ», ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ wayland-protocols Π½Π΅ Ρ
Π²Π°ΡΠ°Π΅Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ, ΡΡΠ°Π·Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΅Ρ ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru