Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ 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 Π‘ΠΈΠΌΠΎΠ½ Π‘Π΅Ρ, Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° wlroots, ΠΈΠ·ΡΠ°Π·ΠΈ ΡΡΠΌΠ½Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ΅Π»Π΅ΡΡΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π² ΠΎΠ±Ρ
ΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° wayland-protocols ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ΅ Π½Π° Wayland ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ°. ΠΠΈΠ΅Ρ-ΠΡ ΠΡΠΈΡΡΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Valve ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ, ΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΡΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° wayland-protocols Π½Π΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π±ΡΡΠ· ΡΠΈΠΊΡΠ» Π·Π° ΠΏΡΠΎΠΌΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, ΠΊΠΎΠΉΡΠΎ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ, Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈ Π²Π·Π΅ΠΌΠ°Π½Π΅ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° Π² ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
