Domanda: Perché registrare il mio CPU ~ 30% quando sfocatura viene applicato contro ~ 6% quando nessun sfocatura viene applicata a un oggetto animato?GPU Accelerazione della animati e contenuti offuscata
Dettagli:
Ho una serie di elementi generati casualmente su una pagina che hanno un'animazione CSS assegnato (in un file CSS) e valori generati in modo casuale per la larghezza, l'altezza e, soprattutto, sfocatura, applicato in linea.
stili file CSS appare come:
animation-name: rise;
animation-fill-mode: forwards;
animation-timing-function: linear;
animation-iteration-count: 1;
-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
-webkit-transform: translate3d(0,0,0);
transform: translateZ(0);
larghezza, l'altezza e la sfocatura vengono applicate in linea tramite l'attributo style
.
<div class="foo" style="width:99px;height:99px;
filter:blur(2px);
-webkit-filter:blur(2px) opacity(0.918866247870028);
-moz-filter:blur(2px) opacity(0.918866247870028);
-o-filter:blur(2px) opacity(0.918866247870028);
-ms-filter:blur(2px) opacity(0.918866247870028);"></div>
Con la sfocatura attivata l'utilizzo della CPU è ~ 30%. Quando disattivo la sfocatura, l'utilizzo della CPU scende al ~ 6%.
Cosa sta succedendo qui? Solo Chrome è in grado di accelerare GPU quando non viene applicata alcuna sfocatura? Se è così, perché?
Update 1:
L'animazione rise
si presenta come segue:
@keyframes rise {
0% {
transform: translateY(0px);
}
100% {
transform: translateY(-1000px);
}
}
irrilevante, ma si dispone di un errore di battitura nel 'filter: sfocatura (2) px' – Chris
Buon posto Chris. Grazie. –
Sono sorpreso. Mi aspetto un elevato utilizzo della CPU quando viene utilizzata la sfocatura e ** NON ** l'hardware è accelerato. La sfocatura è un'operazione costosa. Hai controllato gli strumenti di sviluppo con l'impostazione 'mostra i bordi del livello' sotto' rendering' che si trova sulla GPU? –