ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ , ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ°ΡΠ° ΡΡΠ΅Π΄Π° Xfce Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ Π½Π° Π΅ΠΊΡΠ°Π½Π°, Π΄Π΅ΠΊΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΡ Π½ΠΎΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅, Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠΌ.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ X11 (X-Resource), ΠΊΠΎΠ΅ΡΠΎ Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΎΡ X-ΡΠ΅ΡΠ²Π΅ΡΠ° Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° PID Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΠΏΡΡΡΡΠ½ΠΈΠΊ. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° XRes ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΌΡΡΠ·Π½Π°Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠΈΠΉΡΠΎ PID Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ ΡΡΠ΅Π· ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ _NET_WM_PID, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎ ΠΎΡΡΠ°Π·ΡΠ²Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΡΡΠ΅Π΄Π°, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π² Π³Π»ΠΎΠ±Π°Π»Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ°.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²Π΅ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ (use-after-free) ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·Π²ΡΠ½ Π·Π°Π΄Π΅Π»Π΅Π½ Π±ΡΡΠ΅Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² xfwm4 4.14.3 ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ XError, ΡΠ»Π΅ΡΠ½ΡΠ²Π°ΡΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡΡΠ° XConfigureWindow.
ΠΡΠΈ Π½ΡΠΊΠΎΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ»Π΅Π΄ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 4.14.3 ΠΏΠ°Π΄Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π²ΡΠ² FreeBSD, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΈ ΠΎΡ Π½ΠΎΠ²Π°ΡΠ° ΠΏΡΠΈΠ²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ libXres. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π² xfwm4 ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠΈ AMD ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° X11-ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ XPresent Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π° Ρ ΠΊΠ°Π΄ΡΠ½ΠΈΡ ΠΈΠΌΠΏΡΠ»Ρ (vblank). XPresent ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΠΌΠ°ΡΠΊΠ°ΡΠ° AMD Π² ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ°ΡΡΠ°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΡΠΊΠΎΠΈ ΠΊΠ°ΡΡΠΈ Β«RadeonΒ» Π±Π΅Π· ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Π½Π΅ Π½Π° Π΄ΡΠΌΠ°ΡΠ° Β«AMDΒ» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«Radeon RX 570Β»). ΠΠ° ΡΠ΅Π·ΠΈ ΠΊΠ°ΡΡΠΈ ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ vblank Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Β«glxΒ», ΠΊΠΎΠΉΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²Π° ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° glx, Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° 4K Π²ΠΈΠ΄Π΅ΠΎ Π² mpv Π½Π°ΡΠΎΠ²Π°ΡΠ²Π° GPU Π½Π° 70% Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π²ΠΈΡΠΎΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈ 50% Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π½ΠΈΡΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° XPresent ΡΠΏΠ°Π΄Π° Π΄ΠΎ 50% ΠΈ 30% ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²Π»ΠΈΡΠ΅ Π½Π° Π΅Π½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΎΡΡΠ°Π²Π° Π½Π΅ΡΠ°Π·ΡΠ΅ΡΠ΅Π½. ΠΠ° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° XPresent ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° /general/vblank_mode Π² xfconf:
xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s Β«xpresentΒ» βcreate
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
