# Info over &kappname;

Thomas Luebking thomas.luebking@web.de
&Natalie.Koning;
2005 Thomas Luebking
&FDLNotice;
2005-01-15
2.0.1

&kappname; is een "composite rendering engine" die door &kwin; gebruikt wordt.

Dit document is meer een algemene uitleg van wat het doet, hoe het werkt en wat de beperkingen zijn, en niet echt documentatie over hoe u het moet gebruiken (het werkt dan ook automatisch op de achtergrond).

KDE kwin render engine

## Inleiding

&kappname; is gebaseerd op xcompmgr, Keith Packards referentie implementatie voor het gebruik van de nieuwe X-functies.

Een composite manager vangt de uitvoer van de X-windows en rendert deze als een enkele afbeelding, die dan op het scherm geplaatst wordt. Het voordeel van deze werkwijze is dat u bijna alles met de vensterinhoud kunt doen, zoals ze laten samenvloeien (transparantie) of schaduwen aanbrengen. U kunt ze ook inkleuren, een vervelende advertentie op elk venster plaatsen, ze in elkaar drukken, breken, scanlijnen toevoegen, of wat u maar kunt bedenken. U wordt alleen beperkt door de hardware.

## Xorg

Het is noodzakelijk dat u X.org 6.8 of nieuwer hebt om &kappname; te laten werken. Met X.org 6.7 of ouder of XFree86 werkt het niet.

### Setup

U moet de Composite-extensie expliciet inschakelen. Voeg een nieuwe sectie toe aan uw X.org-configuratiebestand:

    Section "Extensions"
        Option "Composite" "Enable"
    EndSection

Activeer de "Render-acceleration" (grafische versneller) als dit door uw GPU (de complexe chip die op moderne grafische kaarten het rekenwerk doet) ondersteunt wordt. Dit wordt het beste ondersteund door NVIDIA-kaarten en minder goed door ATI-kaarten.

    Section "Device"
    ....
    ....
        Option     "RenderAccel" "true"
    ....
    ....
    EndSection

&kappname; moet nu beschikbaar zijn. Meer informatie kunt u in het gedeelte Vragen en antwoorden vinden.

## Instellingen

In dit hoofdstuk wordt beschreven welke parameters u kunt veranderen, wat het resultaat is en het effect op de prestatie.

### Transparantie

Een transparant object laat licht door. In het geval van vensters op het bureaublad betekent het, dat de inhoud van vensters onderop zichtbaar is door het venster heen dat bovenop ligt.

Met transparantie kunt u bepaalde vensters duidelijker herkenbaar maken, een 3-dimensionaal beeld van het bureaublad krijgen, zien waar bedekte vensters zich bevinden, en het ziet er gewoon leuk uit. U betaalt er wel een prijs voor: het gebruikt meer systeembronnen.

U kunt transparantie voor de volgende items apart instellen:

Actieve vensters

  We raden u aan om de transparantie voor het actieve venster uit te schakelen. De belangrijkste reden is dat de prestatie vermindert, de tweede reden is dat uw hersenen de irritante informatie die door het venster heen schijnt moet uitfilteren om de inhoud van een transparant venster te kunnen lezen, wat erg vermoeiend is.

Inactieve vensters

  Als u inactieve vensters transparant maakt, worden actieve vensters duidelijker herkenbaar en ze springen direct in het oog. Als u echter een lage waarde kiest, wordt het moeilijker om een inactief venster te zien. Als u een erg lage waarde (< 20%) kiest, wordt het bijna onmogelijk om vensters in de stapel te onderscheiden, u kunt dan per ongeluk op OK in een dialoogvenster klikken als u het venster alleen maar wilde activeren. Optimale waarden liggen tussen 60% en 80%.

Vensters die verplaatst worden

  Hoewel het een fraai effect oplevert om een zeer transparant (dekking < 20%) venster te verplaatsen, is er een hoge prijs aan verbonden wat betreft de prestatie, vooral als u schaduwen niet uitschakelt (zie hieronder). Probeer het gewoon en als u merkt dat het systeem te langzaam wordt, laat u de vensters die verplaatst worden ondoorschijnend. Deze waarde heeft ook betrekking op vensters waarvan de grootte aangepast wordt.

Vastgezette vensters

  Omdat vastgezette vensters, zoals Kicker, zelden of nooit verplaatst worden en meestal niet zo groot zijn, heeft het alleen een effect en wordt de prestatie van het systeem niet nadelig beïnvloed.

Behandel vensters "op voorgrond" als actieve vensters

  Als u een venster op de voorgrond wilt houden, wilt u het in het algemeen in beeld houden, het is dan logisch om het dezelfde herkenbaarheid te geven.

ARGB-vensters uitschakelen

  XRender ondersteunt vensters met een alfa-masker, &ie; transparante gedeelten. Op het moment zijn er bijna geen toepassingen die van deze functie gebruik maken, omdat dit weinig zin heeft zonder het gebruik van een composite manager. Dit kan in de toekomst veranderen.

  Aan de andere kant stellen de meeste gtk 1.x-toepassingen (⪚ xmms) zo'n alfa-masker in, dat de vensters bijna onbruikbaar worden (als de onderliggende vensters niet zwart zijn). U kunt de ondersteuning voor ARGB-vensters hier uitschakelen om gtk-toepassingen te kunnen gebruiken. Hopelijk komt er in de nabije toekomst een "patch" om dit te repareren.

### Schaduwen

Waarom zou iemand willen dat een venster schaduwen maakt? Misschien alleen omdat het er leuk uitziet, of omdat de vensters beter uit elkaar te houden zijn, of... omdat het er leuk uitziet!

Schaduwen gebruiken

  Omdat schaduwen wat van de cpu/gpu vergt, kunnen ze uitgeschakeld worden met behoud van algemeen functioneren van het alfa-kanaal.

Grootte van actief venster
Grootte van inactief venster
Grootte van vastgezet venster

  U kunt verschillende afmetingen voor de schaduwen voor verschillende typen vensters instellen. De waarden zijn niet absoluut, maar afhankelijk van de schermresolutie.

  In principe kunt u elke waarde instellen (als u het configuratiebestand in een editor bewerkt, kunt u veel verder gaan dan 32), maar grotere schaduwen vergen ook meer van de cpu/gpu.

Verticale offset
Horizontale offset

  Standaard komt er rondom een even brede schaduw, wat impliceert dat het licht van voren komt. Gebruikers die bekend zijn met &MacOS; hebben misschien liever een schaduw met een verticale offset, &Windows;-gebruikers hebben misschien voorkeur voor een offset rechtsonder. U kunt met de waarden experimenteren tot het naar uw zin is.

Schaduwkleur

  Gewoonlijk zijn schaduwen de afwezigheid van licht en worden ze weergegeven in grijstinten (zodat de diepste schaduwkleur zwart is, er is helemaal geen licht). Maar dit is een virtuele wereld, als u roze schaduwen wilt hebben, waarom ook niet?

Schaduwen weglaten bij verplaatsen

  Schakel deze optie in als u de prestatie wilt verbeteren (vooral als u transparante vensters verplaatst).

Schaduwen weglaten bij aanpassen van grootte

  Het is een goed idee om deze optie in te schakelen, of u de vensters nu transparant houdt bij het veranderen van de grootte (verplaatsen) of niet. De schaduw-pixmap van het venster moet continu opnieuw gemaakt worden, wat erg veel van het systeem vergt.

### Effecten

Vensters langzaam laten verschijnen
Overvloeien bij veranderende dekking

  In plaats van een venster direct op het scherm te laten zetten, wilt u het misschien langzaam laten verschijnen, Dit ziet er indrukwekkend uit, maar het vergt ook indrukwekkend veel van het systeem. Bovendien is het moeilijk om op vensters te reageren die langzaam verschijnen.

Verschijnsnelheid
Verdwijnsnelheid

  Om de redenen die bij Vensters langzaam laten verschijnen al genoemd zijn, is het het meest praktisch om een hoge verschijnsnelheid en (voor een leuker visueel effect) een lage verdwijnsnelheid te gebruiken. Dit geeft mooie effecten en een soepel draaiend systeem, bovendien hoeft u niet lang op informatie te wachten.

## Problemen

De gehele Composite-extensie is vrij nieuw, Het kan verscheidene problemen veroorzaken, het kan zelfs X laten crashen, dus raden we u dringend aan om op kritieke productie-systemen de Composite-extensie in Xorg.conf zelfs niet in te schakelen. Als u echter een ietwat instabiel systeem kunt riskeren, is het toch wel leuk om wat visuele effecten te hebben.

In dat geval kunt u wat haperingen opmerken. Hier zijn enkele algemene problemen - en wat u eraan kunt doen.

Ik heb X.org 6.8.x, maar &kappname; wil niet opstarten

U moet de Composite-extensie expliciet inschakelen, voeg een nieuwe sectie toe aan /etc/X11/XorgConfig:

    Section "Extensions"
       Option "Composite" "Enable"
    EndSection

Goed, &kappname; werkt, maar het is tergend langzaam

Als dit ondersteund wordt door uw GPU (hoofdzakelijk NVIDIA, en in mindere mate door ATI-kaarten), zorg er dan voor dat u de Render-acceleration (grafische versneller) geactiveerd hebt.

    Section "Device"
    ....
    ....
    Option     "RenderAccel" "true"
    ....
    ....
    EndSection

Als het nog steeds langzaam is, kunt u proberen om het geheugengebruik bij te stellen. U kunt ofwel de schermdiepte verlagen (⪚ van 24 naar 16), ofwel de resolutie verlagen (⪚ van 1280x1024 naar 1024x768).

Opmerking: de grootte van de CPU-cache schijnt de huidige beperkende factor voor de Composite-extensie te zijn.

Na het inschakelen van de Composite-extensie kan ik geen enkele GLX-toepassing meer draaien. Ik heb een NVIDIA-kaart.

Ter voorkoming van sommige problemen heeft NVIDIA de ondersteuning van GLX uitgeschakeld wanneer Coposite geactiveerd is. Het kan weer ingeschakeld worden, maar dit kan problemen veroorzaken bij enkele kernel/driver/GPU-combinaties.

    Section "Device"
    ....
    ....
    Option  "AllowGLXWithComposite" "true"
    ....
    ....
    EndSection

Ik wilde een spelletje doen dat SDL (maar geen GL gebruikt), zoals scummvm, maar wanneer de compmgr actief is, zie ik alleen maar een schaduw!

Dit is een probleem met het PictType dat door SDL gerapporteerd wordt.

Mogelijke oplossing:

    Gebruik, in plaats van het commando scummvm rechtstreeks,
    SDL_VIDEO_X11_VISUALID=0x24 scummvm Dit laat SDL een
    ondersteund type gebruiken en u kunt weer gewoon spelen.

Toepassing XXX weigert op te starten na het inschakelen van de Composite-extensie.

Toepassing YYY maakt X stuk na het inschakelen van de Composite-extensie.

Toepassing ZZZ ziet er raar uit na het inschakelen van de composite manager.

De Composite-extensie is nog steeds in de experimentele fase.

Mogelijke oplossing:

In plaats van `appName`, kunt u beter `XLIB_SKIP_ARGB_VISUALS=1 appName` gebruiken.

Toepassingen waarvan we weten dat ze problemen veroorzaken:

- Alle gtk1 toepassingen (⪚ gmplayer, xmms, gaim) - weigeren op te starten of zien er raar uit of laten X crashen.

- &kuickshow; - laat alleen een zwart frame zien

- &Qt; Designer - laat X crashen

- &kopete; - laat X crashen

- &kolf; - laat X crashen

Ik probeer een video te bekijken, maar ik zie alleen artefacten in het Video-venster.

U gebruikt xv als video-backend. Dit is de "overlay"-modus, hier wordt de inhoud van de video rechtstreeks, buiten X om, naar het geheugen van de videokaart gestuurd. Daarom schijnt het venster statisch (gekleurde achtergrond) te zijn en wordt niet door de damage-extensie bijgewerkt.

In de toekomst wordt dit hopelijk gerepareerd. Momenteel geeft Xine de beste resultaten, maar het afspelen van transparante video's gaat, hoe dan ook, traag.

## Dankbetuigingen en licenties

### Auteurs

Thomas Luebking baghira-style@gmx.net - Editor

&underFDL; &underGPL;