E 'non è tanto che i browser non possono essere o non sono intelligenti abbastanza da usare l'accelerazione hardware. Invece, ciò a cui ti riferisci si applica solo a WebKit e, in particolare, alle versioni mobili di WebKit. Sia Firefox che IE accelerano l'hardware, e dividono automaticamente la pagina in "strati" che sono composti sulla GPU. Ecco perché di solito superano Chrome al rendering dei test di velocità. WebKit, d'altra parte, non è mai stato adattato per avere più di semplici accelerazioni di livello.
Perché Firefox e IE possono sfruttare il rendering di Direct2D su piattaforme Windows (in cui ogni singola operazione di disegno è accelerata dall'hardware), era essenzialmente un requisito che fossero in grado di eseguire anche il compositing con accelerazione hardware. Se avessero solo accelerato le operazioni di disegno e non il compositing, avrebbero perso la maggior parte del vantaggio in termini di velocità dall'uso di Direct2D in primo luogo perché avrebbe richiesto la copia tra GPU e memoria di sistema, che è lenta. D'altra parte, tutti i backend di rendering di WebKit di cui sono a conoscenza eseguono il rendering completamente nel software e sostengono la penalità copy-to-GPU quando si compongono (se si utilizza il composito GPU). Quindi, finisce per essere un compromesso. Se il livello di compositing non richiede molto tempo per il rendering sulla CPU, non ha sempre senso eseguire la copia e il composito sulla GPU.
A causa di questo, e anche per la natura estremamente limitata delle GPU mobili, nessuno dei browser WebKit ha ancora iniziato a fare l'accelerazione hardware automatica tranne quando è assolutamente necessario (ad esempio quando si imposta una trasformazione 3D). Se volessi la mia opinione, aggiungerei anche che penso che anche la pigrizia da parte degli sviluppatori WebKit e delle società di supporto sia un fattore importante. L'uso della GPU è una delle principali fonti di bug, quindi è più facile per loro non utilizzarlo invece di risolvere i problemi.
A proposito, Firefox per Android può fare sempre il compositing su GPU, anche se potresti doverlo abilitare in about: config; Non so se è attivo per impostazione predefinita. Per PC, ti consiglio di utilizzare Firefox o IE per un rendering veramente veloce.
EDIT: Dovrei aggiungere che nelle ultime versioni di Android, Google ha aggiunto l'accelerazione hardware a Skia, che gestisce quasi tutto il rendering 2D sul sistema operativo. Non ci sono ancora molti dispositivi in circolazione, ma ciò significa che le prestazioni miglioreranno per tutto su Android nel prossimo futuro. Detto questo, non so se la loro implementazione di Skia funzioni perfettamente con OpenGL come potrebbe piacerci. Il compositing potrebbe ancora incorrere in alcune copie extra fino a quando non si occupano di esso.
fonte
2012-01-30 18:04:45
La prima volta che ho visto una tale tecnica era in [questa domanda] (http: // StackOverflow.it/questions/9012753/is-there-a-firefox-equivalent-to-chromes-translatez0-to-force-gpu-accelera), con una bella risposta "nope" da parte di uno degli sviluppatori di Mozilla. È * quasi * ridicolo come aggiungere "! Important" per risolvere un enigma di specificità ... * quasi *. – BoltClock