Desktopová prostředí a správci oken | 30. Září 2017, 02:58:42 odpoledne
GLX backend a problem s trhanim

MadMax

  • Nováček
  • *
  • 3
    Příspěvků
  • Karma: +0/-0
    • Zobrazit profil
GLX backend a problem s trhanim
« kdy: 30. Září 2017, 02:58:42 odpoledne »
Zdravím,

pôvodne som vás (lombardo1981) prosil o radu ako vyriešiť problém s trhaním (vsync) keď je backend nastavený na GLX. Použil som váš configurák comptonu a problém zmizol, no objavil sa ďalší v openboxe. Možno to je len najaká banalita. V openboxe som otvoril nové okno firefoxu a pretiahol ho na druhú plochu, ale prekreslil mi wallpaper a ostali po ňom miesta s fragmentami. Odstránil som ich opätovným ťahaním okna cez ne. Neviem či to zrozumiteľne vysvetľujem, neviem to totiž pomenovať. Ale nedeje sa to vždy. Skúšal som to znovu dosiahnuť a nepodarilo sa. Stalo sa to mimovoľne iba 2x.

Pôvodne to boli chyby vo vykreslovaní v Thunare. Keď som scrolloval dochádzalo k rozdvojeniu ikon. Ako keby ste na seba položili dva listy papiera a jeden posunuli o tretinu dĺžky listu. Xrender to nerobí, ale pod xrender nie je pekný fading. Hlavne pri Firefoxe je to obzvlásť nepekné. Preto by som rád použil glx. Ešte dodám, že na Slackware glx backend nerobí žiaden problém, alebo aspoň o žiadnom neviem. To ale bola moja konfigurácia comptonu, ktorá v arch linuxe akosi nefunguje.

Len zhrniem že používam:
- WM: i3wm a Openbox
- CPU: intel i5 2500K sandy bridge
- GPU: integrovanú, či ako sa to mu hovorí :)
- RAM 4G

Ďakujem

lombardo1981

  • Mladší člen
  • **
  • 53
    Příspěvků
  • Karma: +2/-0
    • Zobrazit profil
Re:GLX backend a problem s trhanim
« Odpověď #1 kdy: 30. Září 2017, 08:31:29 odpoledne »
Ahoj.
V prvom rade mi pokojne tykaj. Nebudem sa cítiť taká stará.  ;D
Ale srandičky bokom... Najskôr, tu je odkaz na manuál pre optimalizáciu výkonu. Manulálová stránka:
Kód: [Vybrat]
man compton
Tento parameter je optimalizácia predovšetkým pre nvidia. Upravuje zlú synchronizáciu medzi X Render a GLX. Skús ho zakomentovať:
Kód: [Vybrat]
xrender-sync-fence = true
Ďalej, čo by mohol spôsobovať problémy je tento parameter:
Kód: [Vybrat]
glx-swap-method = "exchange"
Skús ho zmeniť na undefined, čo je predvolená hodnota alebo na buffer-age (autodetekciu):
Kód: [Vybrat]
glx-swap-method = "undefined"
glx-swap-method = "buffer-age"


Ďalšie možnosti sú:
Kód: [Vybrat]
undefined/exchange/copy/3/4/5/6/buffer-age

undefined is the slowest and the safest, and the default value.copy is fastest, but may fail on some drivers,
2-6 are gradually slower but safer (6 is still faster than 0). Usually, double buffer means 2, triple buffer means 3.
buffer-age means auto-detect using GLX_EXT_buffer_age

Ďalší parameter, ktorý môže spôsobovať problémy je:
Kód: [Vybrat]
glx-no-rebind-pixmap = true
Dostupné backendy:
Kód: [Vybrat]
xrender
glx
xr_glx_hybrid

glx-copy-from-front sa pokiaľ možno vyhýbaj, značne znižuje výkon. glx-use-copysubbuffermesa môže byť použitá namiesto glx-swap-method. Nikdy nie spolu. Môže narušiť vsync. xrender-sync môže vylepšiť synchronizáciu medzi X Render a GLX. A jeho použitie sa odporúča. Ide o parameter, ktorý nahradí xrender-sync-fence.

Snáď niečo z toho pomôže.
Arch Linux (64-bit); Acer Aspire TC-705; i3wm; Intel Core i3-4160 CPU @ 3.6GHz; GeForce GTX 745; 8GB RAM DDR3; kernel: linux a linux-zen
Arch Linux (64-bit); Acer Aspire V13 Aluminium; i3wm; Intel Core i5 5257U @ 2.7GHz; Intel Iris Graphics 6100 ; 8GB RAM DDR3L

MadMax

  • Nováček
  • *
  • 3
    Příspěvků
  • Karma: +0/-0
    • Zobrazit profil
Re:GLX backend a problem s trhanim
« Odpověď #2 kdy: 01. Říjen 2017, 07:31:58 odpoledne »
Vďaka za rozpísanie možností :)

Toto musím mať odkomentované inak by som mal permanentné trhanie obrazu:
Kód: [Vybrat]
xrender-sync-fence = true
Toľko som zatiaľ zistil. Ale problém sa už viacej aj tak neobjavil. Budem priebežne skúšať aj ostatné možnosti, stále som vo fáze testovania aj samotného Arch Linuxu. Zdá sa mi, že už je to ok, no dám tomu ešte nejaký ten týždeň a ak to pôjde bez chýb, budem to považovať za vyriešené.
V každom prípade ma tvoj config comptonu veľmi potešil. Už som ani nedúfal.

Ďakujem :)

lombardo1981

  • Mladší člen
  • **
  • 53
    Příspěvků
  • Karma: +2/-0
    • Zobrazit profil
Re:GLX backend a problem s trhanim
« Odpověď #3 kdy: 01. Říjen 2017, 07:46:34 odpoledne »
Nemáš za čo. Aj za rady, aj za konfigurák. :)

Tiež mi chvíľu trvalo, kým som si compton optimalizovala. Len, keď som písala odpoveď, tak som sa na neho ešte raz pozrela, a zmenila som jeden parameter:
Kód: [Vybrat]
glx-swap-method = "undefined"
Toto by som odporučila zmeniť. Plus pridať:
Kód: [Vybrat]
xrender-sync = true
Arch Linux (64-bit); Acer Aspire TC-705; i3wm; Intel Core i3-4160 CPU @ 3.6GHz; GeForce GTX 745; 8GB RAM DDR3; kernel: linux a linux-zen
Arch Linux (64-bit); Acer Aspire V13 Aluminium; i3wm; Intel Core i5 5257U @ 2.7GHz; Intel Iris Graphics 6100 ; 8GB RAM DDR3L

MadMax

  • Nováček
  • *
  • 3
    Příspěvků
  • Karma: +0/-0
    • Zobrazit profil
Re:GLX backend a problem s trhanim
« Odpověď #4 kdy: 11. Říjen 2017, 01:44:22 odpoledne »
No, tak som to trochu otestoval :) Ale teraz ma napadlo, že na začiatku som mal zmieniť aj iné súvislosti. Aby všetko fungovalo musel som nastaviť:

/etc/X11/xorg.conf.d/20-intel.conf
/home/USER/.drirc
/home/USER/.config/compton.conf


/etc/X11/xorg.conf.d/20-intel.conf
Kód: [Vybrat]
Section "Device"
  Identifier  "Intel Graphics"
  Driver      "intel"
  Option      "AccelMethod"  "sna"
  Option      "DRI"  "true"
  Option      "DRI"  "2"
  Option      "TearFree"  "true"
EndSection

/home/USER/.drirc
Kód: [Vybrat]
<device screen="0" driver="dri2">
<application name="Default">
<option name="vblank_mode" value="0"/>
</application>
</device>

/home/USER/.config/compton.conf
Kód: [Vybrat]
backend = "glx";
vsync = "opengl-swc";
refresh-rate = 0;
glx-no-stencil = true;
glx-swap-method = "undefined";      # pravdepodobne u mňa fungujú dobre všetky tri možnosti - undefined - copy - exchange
#glx-swap-method = "copy";
#glx-swap-method = "exchange";
#glx-no-rebind-pixmap = true;
# glx-copy-from-front = true;
# glx-use-copysubbuffermesa = true;
xrender-sync-fence = true;
xrender-sync = true
unredir-if-possible = false       # toto bolo pôvodne "true", ale spôsobovalo to flickering fullscreen aplikácii
paint-on-overlay = true;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
# use-ewmh-active-win = false;
detect-transient = true;
detect-client-leader = true;
detect-client-opacity = true;
dbe = false;
sw-opti = false;
invert-color-include = [ ];
focus-exclude = [ "class_g = 'mpv'" ];

## Shadow
shadow = true;
no-dnd-shadow = true;
no-dock-shadow = false;
clear-shadow = true;
shadow-ignore-shaped = true;
detect-rounded-corners = true;
shadow-radius = 7;
shadow-offset-x = -10;
shadow-offset-y = -10;
shadow-opacity = 0.3;
# xinerama-shadow-crop = true;
# shadow-exclude-reg = "x10+0+0";
#shadow-exclude = [ "name = 'Notification'" ];
shadow-exclude = [
"n:e:Notification",
"g:e:Synapse",
"g:e:Conky",
"class_g = 'Firefox' && argb",
"n:w:*Chromium*",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'",
"name = 'Notification'",
# workaround for conky until it provides window properties:
"override_redirect = 1 && !WM_CLASS@:s",
# "class_g ?= 'Dunst'",
# disable shadows for hidden windows:
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
"_GTK_FRAME_EXTENTS@:c",
# disables shadows on sticky windows:
# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'",
# disables shadows on i3 frames
"class_g ?= 'i3-frame'"
];

# shadow-exclude-reg = "x10+0+0";
# xinerama-shadow-crop = true;

## Menu opacity
menu-opacity = 0.9;
inactive-opacity = 0.85;
active-opacity = 1;
#frame-opacity = 0.80;
# inactive-opacity-override = true;
alpha-step = 0.01;
inactive-dim = 0.0;
# blur-background = false;
# blur-background-frame = false;
# blur-background-fixed = false;
blur-kern = "3x3box";
opacity-rule = [ ];
blur-background-exclude = [ ];
 
 
## Fading
fading = true;
fade-delta = 5;
fade-in-step = 0.03;
fade-out-step = 0.03;
# no-fading-openclose = true;
fade-exclude = [ ];
 
 
## Window type settings
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.85; focus = true; };
  menu = { shadow = false; };
  dropdown_menu = { shadow = true; };
  popup_menu =  { shadow = true; };
  fullscreen = { fade = true; shadow = false; opacity = 1; focus = true; };
};

Zdá sa mi, že to môžem považovať za uzavreté :) Pripájam screenshot, že kam som to dopracoval. Snáď nevadí odkaz na Abclinuxu http://www.abclinuxu.cz/desktopy/madmax-20171013
« Poslední změna: 13. Říjen 2017, 12:49:54 odpoledne od MadMax »