2012-06-10 3 views

risposta

9

A partire da JellyBean 4.2 esiste un'interfaccia GPU diretta per il rendering. Vedi this e this.

+0

Informazioni più dettagliate con confronto delle prestazioni sono disponibili qui: http://android-developers.blogspot.com/2013/01/evolution-of-renderscript-performance.html – keaukraine

+0

Per essere precisi, in Android 4.2 un nuovo concetto di FilterScript era introdotto. I FilterScripts sono RenderScript più limitati e possono essere eseguiti su GPU. Tuttavia, se viene effettivamente eseguito sulla GPU verrà deciso dal supporto del fornitore. –

3

Non posso confermare con alcuna documentazione ufficiale per Google, ma lavoro con RenderScript tutto il giorno ogni giorno e ogni volta che lo eseguo, vedo il logcat che carica i driver per i chip grafici nei miei dispositivi, in particolare Tegra 2. Google è davvero rimasto indietro nel documentare RenderScript, e non sarei affatto sorpreso se semplicemente non avessero corretto questa omissione nella loro discussione.

+0

Grazie, posso chiederti a cosa stai lavorando (solo curiosità)? – fhucho

+1

Abbiamo un Motorola Xoom (Tegra 2), un Samsung Galaxy Tab 7.0+ (Mali-400MP), Galaxy Nexus (SGX540) e un Galaxy S (Snapdragon) su cui testiamo il codice RenderScript, anche se The Xoom è quello che più mi piace spesso si verifica perché di solito è il fattore limitante a causa di alcuni problemi di sprite di punti con il Tegra 2. Se si intendeva il progetto, si tratta di un motore grafico di uso generale per alcuni dei nostri progetti interni. – Jared

+0

Grazie, buona fortuna con il progetto! – fhucho

1

Il design di RenderScript è tale da essere eseguito sulla GPU. Questo era lo scopo principale dell'aggiunta della nuova lingua. Presumo che ci siano dispositivi in ​​cui viene eseguito sulla CPU a causa della mancanza di supporto, ma sulla maggior parte dei dispositivi viene eseguito sulla GPU

+0

Questo non è corretto. A partire da Ice Cream Sandwich e Jelly Bean, Renderscript funziona solo su CPU. Google non ha aggiunto alcun supporto per GPU. Ma sì, l'intenzione è avere codice Renderscript in esecuzione su GPU e CPU. – codetwiddler

1

Penso che questo dipenda dal fatto che si stiano eseguendo operazioni grafiche o di elaborazione. Le operazioni grafiche saranno probabilmente eseguite sulla GPU ma le operazioni di calcolo non saranno di gran lunga comprese.

Quando si utilizza il costrutto forEach, il calcolo verrà eseguito in più thread sulla CPU, non sulla GPU (è possibile vederlo nel codice sorgente ICS). Nelle versioni future questo potrebbe cambiare (vedi https://events.linuxfoundation.org/slides/2011/lfcs/lfcs2011_llvm_liao.pdf) ma non ho visto nessun annuncio.

2

Attualmente lato calcolo di Renderscript viene eseguito solo sulla CPU:

Per ora, calcolare Renderscripts può valersi di core della CPU, ma in futuro, possono potenzialmente funzionare su altri tipi di processori come GPU e DSP.

Tratto da Renderscript dev guide.

Il lato grafico di Renderscript si trova sopra OpenGL ES, quindi gli shader funzioneranno sulla GPU.

La GPU Mali-T604 ARM offre un obiettivo per il lato di calcolo di Renderscript (in una futura versione di Android?) (Vedere ARM Blog entry).