Tips om optimering av prestanda för GPU-återgivning

Även om GPU-återgivning kan förbättra prestanda för SWF-innehåll avsevärt, spelar innehållets utformning en viktig roll. Tänk på att inställningar som tidigare har fungerat bra vid programvaruåtergivning ibland inte fungerar så bra med GPU-återgivning. Använd följande tips för att få bra prestanda med GPU-återgivning, utan att programvaruåtergivningen påverkas negativt.

Obs! Mobilenheter med stöd för maskinvaruåtergivning öppnar ofta SWF-innehåll från webben. Därför är det en bra idé att ta hänsyn till följande råd när du skapar SWF-innehåll för att försäkra dig om att resultatet blir optimalt på alla skärmar.
  • Undvik att använda wmode=transparent eller wmode=opaque i HTML-parametrar av typen embed. Dessa lägen kan orsaka sämre prestanda. De kan också ge upphov till mindre fel i synkroniseringen av ljud och video vid både programvaru- och maskinvaruåtergivning. Dessutom har många plattformar inte stöd för GPU-återgivning när de här lägena används, vilket försämrar prestanda avsevärt.

  • Använd bara det normala blandningsläget och alfablandningsläget. Undvik att använda andra blandningslägen, särskilt lagerblandningsläget. Det är inte alla blandningslägen som kan återges korrekt med GPU-återgivning.

  • När en grafikprocessor återger vektorgrafik delas grafiken upp i nät, som består av små trianglar, innan den ritas upp. Den här processen kallas tesselering. Tesselering medför en viss prestandaförlust, som ökar i takt med formens komplexitet. För att minimera prestandapåverkan bör du undvika övergångsformer, eftersom dessa tesseleras vid varje bildruta med GPU-återgivning.

  • Undvik kurvor som skär sig själva, mycket tunna böjda områden (som t.ex. en månskära) och komplicerade detaljer längs kanterna på en form. De här formerna är svåra för grafikprocessorn att tesselera till triangulära nät. För att förtydliga kan vi använda två vektorer: en fyrkant på 500 × 500 och en månskära på 100 × 10. Grafikprocessorn kan enkelt återge den stora fyrkanten, eftersom den bara består av två trianglar. Däremot krävs det ett stort antal trianglar för att beskriva månskärans kurva. Det är därför mer komplicerat att återge den formen, även om det handlar om ett färre antal pixlar.

  • Undvik stora skaländringar, eftersom dessa också kan medföra att grafikprocessorn tesselerar om grafiken.

  • Undvik överritning om det går. Överritning är när flera grafiska element placeras i lager så att de skymmer varandra. Med programvaruåtergivning ritas varje pixel bara en gång. Därför försämras programmets prestanda inte vid programvaruåtergivning, oavsett hur många grafiska element som täcker varandra vid en viss pixelposition. Vid maskinvaruåtergivning däremot ritas alla pixlar för alla element, vare sig de skyms av andra element eller inte. Om två rektanglar överlappar varandra ritas det överlappande området två gånger vid maskinvaruåtergivning, medans det vid programvaruåtergivning bara ritas en gång.

    På en stationär dator, som använder programvaruåtergivning, märker du därför oftast inte någon prestandapåverkan trots överritningen. Men många överlappande former kan påverka prestanda negativt på enheter som använder GPU-återgivning. Det är därför alltid en bra idé att ta bort objekt från visningslistan i stället för att dölja dem.

  • Undvik att använda stora, fyllda rektanglar som bakgrunder. Ange i stället bakgrundsfärgen för scenen.

  • Undvik i största möjliga mån att använda standardläget för bitmappsfyllning för bitmappsupprepning. Använd i stället läget för bitmappsbegränsning (clamp) för att få bättre prestanda.