Π‘ΠΎΡΡΠΎΡΠ»ΡΡ Π²ΡΠΏΡΡΠΊ X11-ΡΠ΅ΡΠ²Π΅ΡΠ° yserver 1.5.0, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Ρ Π½ΡΠ»Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° X11. ΠΡΠΎΠ΅ΠΊΡ Π½Π΅ ΡΡΠ°Π²ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Xorg Server ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ², ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (GTK, Qt, SDL, GLFW). ΠΠ· ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ MATE, Xfce, Cinnamon, Sonic ΠΈ Enlightenment, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ icewm, FVWM3, openbox, i3 ΠΈ wmaker. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.
Π yserver ΡΠ΅ΡΠ΅Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ X11-ΡΠΊΡΠ°Π½ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ (ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ½ΠΈΡΠΎΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ), ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ TrueColor ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ²Π΅ΡΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΏΡΡΠΌΠΎΠΉ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ (indirect GLX), API Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² DDX, ΡΡΠ°ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠΈΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡΠΎΠ² (ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ big-endian ΠΈ little-endian).
ΠΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ΅ΡΠ΅Π· DRM/KMS ΠΈ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Mesa. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π½ΡΠΎΠΌ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libseat. ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ X-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ynest β Π±ΡΠΊΠ΅Π½Π΄ Π΄Π»Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ ΠΈΠ· Xwayland ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ X11-ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π² GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, mesa-Π΄ΡΠ°ΠΉΠ²Π΅Ρ RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, mesa-Π΄ΡΠ°ΠΉΠ²Π΅Ρ ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ virtio-gpu ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ GPU Venus. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Π² Linux ΠΈ FreeBSD.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° reverse-PRIME, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ GPU Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ³Π½Π°, Π° GPU Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠ² ΠΊ ΠΏΠΎΡΡΠ°ΠΌ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΡ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² Mesa Π΄Π°Π½Π½ΡΡ ΠΎ ΡΠ°ΡΡΠΎΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΡΠ΅ΡΠ΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ GLX_OML_sync_control.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ ΠΎΡΠΊΠ»ΡΡΡΠ½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (vsync-off).
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΡΠ½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ GLX ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎΠ΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GLX (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Mesa ΠΈΠ»ΠΈ NVIDIA).
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ DRI3 1.4 Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² drm_syncob ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΄ΡΠ° DRM (Direct Rendering Manager).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠΈΡ ΡΡ ΡΠ°ΡΡΠ΅ΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Wayland Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ wlroots.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΠΌΠΎΠΊ ΠΎΠΊΠ½Π° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ X11-ΡΠ΅ΡΠ²Π΅ΡΠ°.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ±ΠΎΡΠΊΠ° ΠΏΠ°ΠΊΡΠΎΠ² Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Aarch64, ΠΏΠΎΠΌΠΈΠΌΠΎ x86_64.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
