Project Butter - in CM10 Nightly enthalten??

  • 10 Antworten
  • Letztes Antwortdatum
C

Casey

Ambitioniertes Mitglied
21
Hey,

sind in den CM10 Nightlies bereits "Project Butter" enthalten?

Oder muss man noch 4 Wochen warten, bis auch abgewandelte Versionen von CM10 veröffentlicht werden?
 
Project Butter ist kein separates "Feature", sondern ist in die Entwicklung von Android 4.1 Jelly Bean eingeflossen. Und CM 10 ist Android 4.1.2 Jelly Bean. ;)
 
Soweit ich weiß muss aber auch der Prozessor die Unterstützung bieten...

Gesendet von meinem GT-I9300 mit Tapatalk 2
 
pleitegeier schrieb:
Soweit ich weiß muss aber auch der Prozessor die Unterstützung bieten...

Gesendet von meinem GT-I9300 mit Tapatalk 2

und das tut er schon (Hardwarebeschleunigung geht ja...) :thumbsup:
 
Da der Thread sowieso offen ist, was ist Projekt Butter eigentlich?

Gesendet von meinem Optimus 2X mit der Android-Hilfe.de App
 
SebS23 schrieb:
Da der Thread sowieso offen ist, was ist Projekt Butter eigentlich?

Gesendet von meinem Optimus 2X mit der Android-Hilfe.de App

Eine konstante Bildrate auf dem Homescreen. Müssten 60 fps (frames per second) sein.

Gesendet von meinem Optimus 2X mit der Android-Hilfe.de App
 
  • Danke
Reaktionen: SebS23
Darf man fragen was man davon hat, wenn sich doch eh nichts bewegt?
 
Es geht hierbei um die Animationen wenn du z.B. den App Drawer öffnest. Dank Project Butter sind alle Animationen "Butter" weich. :D
 
Und das merkt man tatsächlich ^^
 
SebS23 schrieb:
Da der Thread sowieso offen ist, was ist Projekt Butter eigentlich?

Project Butter fasst eine ganze Reihe von Maßnehmen zusammen, die dazu beitragen sollen, die user experience so verzögerungsfrei wie nur irgend möglich zu gestalten. Vereinfacht gesagt: Alles soll flüssig laufen, jederzeit.

Es geht hierbei nicht ausschließlich um Animationen (die kosten eher Zeit) oder Hardwarebeschleunigung (nutzt das Android-UI schon seit Version 4.0.4), wobei letzteres zwingende Voraussetzung für die Nutzung sein dürfte. Stattdessen die folgenden 5 Punkte:

1. Triple-Buffer der Grafikeinheit
2. Aktiviertes V-Sync
3. 60fps Rendering
4. Agressiverer CPU-Govenor
5. Ein bisschen Magie :)

Wen es genauer interessiert, hier ein, zwei Sätzchen zu den einzelnen Themen:

1. In den Puffer (engl. buffer) berechnet die GPU das Bild hinein. Bei einem Doppelpuffer (=Standard) wird dort das aktuell angezeigte sowie das nächste berechnete Bild abgelegt. Der Dreifachpuffer umfasst das aktuelle Bild sowie schon die nächsten 2 Nachfolger. Somit werden Verzögerungen vermieden, da der Grafikprozessor mehr Vorarbeit leisten kann.

2. Hängt ein bisschen mit 1. zusammen. Prinzipiell besagt die Option, dass ein Bild nicht während der Ausgabe verändert werden kann, auch wenn schon ein neueres Bild berechnet wurde. Dies sorgt für saubere Übergänge.

3. Die UI-Animationen werden mit 60 Bildern pro Sekunde ausgegeben. Ist das gleiche Prinzip wie bei den 1-600 Hertz-Fernsehern im Elektromarkt: Es werden mehr Zwischenbilder berechnet, die in der gleichen Zeitspanne ausgegeben werden. Wenn wir mal als Beispiel eine Animation nehmen, die 300ms dauert, dann besteht diese (auf 30fps gerendert) aus 9 Einzelbildern (30 Bilder/Sekunde ergibt 0,3 Bilder/Millisekunde). Mit 60fps werden nun 18 Einzelbilder in den selben 300ms gezeigt. Sieht schöner aus, die Animation "klaut" trotzdem noch Zeit :)

4. Kurz gesagt: Die CPU hat mehrere Leistungsmodi (einer ist beispielsweise der berühmte DeepSleep-State). Bei jedem Tipp aufs Display wird die CPU sofort auf volle Leistung gefahren, da beim hochtakten nach Bedarf (kennt vielleicht der eine oder andere - der "ondemand"-Govenor) erst die einzelnen Stufen durchgeschaltet werden und das Zeit kostet. Geht natürlich auf die Akkulaufzeit, allerdings haben die Entwickler das meines Wissens nach an anderer Stelle wieder gut gemacht.

5. Das Gerät versucht zu erraten, wo der User als nächstes hintippen wird, und berechnet schonmal ein paar Bilder für den Fall, dass die Prognose zutrifft. Die genaueren technischen Umsetzung kenne ich jetzt allerdings nicht so aus'm Kopp :D

Wie man sieht hat Google doch jede Menge Aufwand und Forschung zu diesem Thema betrieben. Dafür kann sich das Ergebnis allerdings auch wirklich sehen lassen.

Viele Grüße

€:
Avok schrieb:
Project Butter ist kein separates "Feature", sondern ist in die Entwicklung von Android 4.1 Jelly Bean eingeflossen. Und CM 10 ist Android 4.1.2 Jelly Bean. ;)
Da muss ich widersprechen: Zwar wurde Project Butter mit Jelly Bean eingeführt, da Android jedoch modular und quelloffen aufgebaut ist, kann der jeweilige Developer frei entscheiden, ob er die Funktionalität integriert oder nicht. Das CM10 "Hackfest" hatte 0,0% der oben beschriebenen Maßnahmen implementiert, ebenso wie etliche andere Custom-ROMs für andere Geräte (auch welche, bei denen die Hardwarebeschleunigung bereits funktioniert).

Wobei mir grad auffällt, dass die ursprüngliche Frage dieses Threads immer noch nicht beantwortet wurde... :D
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Thoddü, Viper, SebS23 und eine weitere Person
Optikus schrieb:
€:

Da muss ich widersprechen: Zwar wurde Project Butter mit Jelly Bean eingeführt, da Android jedoch modular und quelloffen aufgebaut ist, kann der jeweilige Developer frei entscheiden, ob er die Funktionalität integriert oder nicht. Das CM10 "Hackfest" hatte 0,0% der oben beschriebenen Maßnahmen implementiert, ebenso wie etliche andere Custom-ROMs für andere Geräte (auch welche, bei denen die Hardwarebeschleunigung bereits funktioniert).

Da möchte ich gern nochmal einhaken. ;)
Kalr ist Andorid Open Source, es könnte natürlich auch jemand hergehen und beim Code zu Android 4.2 die Dalvik VM rausnehmen und durch einen einfachen Interpreter ersetzen. Das ganze wäre dann natürlich extrem lahm. ABER es wäre dann kein Android 4.2 mehr. Die Bezeichnung Android 4.2 würde ich eher auf den Grundstock, so wie ihn Google vorgegeben hat beziehen. Das heisst alles, was Google bei 4.2 eingebaut hat, sollte auch drin sein, wenn jemand seinen Code Android 4.2 nennen will. Aus dieser Sicht wären meine Worte korrekt. ;)

Natürlich weiss ich jetzt nicht so genau, welcher Code von Googles 4.1.2 in der CM10 vorhanden ist, aber da es eben 4.1.2 heisst, würde ich mal davon ausgehen, dass auch (zumindest) die wichtigsten Sachen drin sind. Und die CM bezeichnet sich ja selber als Vanilla Android, also so, wie Google es vorgesehen hat.


Und eine kleine Anmerkung zu Triple Buffering hab ich noch. Prinzipiell gehts nicht darum, dass die GPU mehr vorberechnen kann, denn es kann durchaus vorkommen, dass bei Triple Buffering ein von der GPU berechnetes Bild übersprungen wird, wenn ein vollständiges, neueres vorhanden ist. Generell Sinn macht es soweit eigentlich nur in Kombination mit V-Sync. Würde man nur zwei Puffer verwenden, so führt folgendes Szenario zu einer stark verringerten Leistung:
Das Display zeigt ein Bild an, die GPU berechnet das nächste. Nun schafft es die GPU jedoch ganz knapp nicht, das neue Bild zu berechnen, wenn das Display ein neues anzeigen will. Somit muss das alte nochmal für eine ganze Zeiteinheit dargestellt werden, die GPU wird dann fertig und hat keinen Speicherbereich, in dem es das nächste Bild berechnen könnte. (Im ersten Puffer ist das aktuell zum zweiten mal dargestellt drin, im zweiten wartet das nächste.) Somit kann man im schlimmsten Fall fast 50% Leistung verlieren und die fps Rate MUSS ein ganzzahliger Teil der Bildwiederholrate des Displays sein.

Mit einem weiteren (dritten) Puffer kann man dieses Problem umgehen: Im obigen Szenario zeigt das Display also auch im zweiten Schritt nochmal das alte Bild an, kurz darauf wird die GPU mit Bild 2 fertig und kann sofort mit der Berechnung von Bild 3 beginnen (in den Puffer 3) und muss nicht mehr warten. Nun kommt es darauf an, wer nun schneller ist. Im dritten Zeitschritt zeigt das Display nun das aktuellste der vorhandenen vollständigen Bilder an, also entweder das Bild 3 im Puffer 3 (wenn die GPU diesmal schneller war) und überspringt so das Bild 2, oder aber entsprechend das Bild Nr 2.

Hier kann man aber auch einen Nachteil von Triple Buffering erkennen: Es kann uU länger dauern bis ein berechnetes Bild wirklich angezeigt wird. Bei einem Smartphone sollte das nicht auffallen, bei schnellen Spielen am PC, wie zB Shooter, oder schnelle Rennspiele kann die verzögerte Reaktion auf Eingaben des Spielers jedoch störend wirken.

(Der Vollständigkeit halber: Verwendet man kein V-Sync mit zwei Puffern, so wird das dargestellte Bild sofort dann erneuert, wenn die GPU es fertig berechnet hat. Das kann jedoch dazu führen, dass es nicht mit dem Display synchronisiert ist, also die obere Hälfte des Displays zum alten und die untere zum neuen Bild gehört und beide somit nicht ganz zusammenpassen, dafür kommen die Eingaben des Benutzers schneller auf dem Display an. [Aber nur bei sehr schnellen Inhalten überhaupt wahrnehmbar, beim Tippen einer EMail wird das niemand bemerken. ;) ])



Edit:
Schon wieder nicht direkt beantwortet :D
Indirekt steht meine Meinung in den beiden Beiträgen von mir schon drin, aber nochmal klar: Ja, ich würde mal behaupten, dass in CM10 Project Butter vollständig eingeflossen ist. (Da es sich ja Android 4.1.2 Jelly Bean schimpft. ;) )
 

Ähnliche Themen

B
Antworten
4
Aufrufe
3.274
YetiRapper
YetiRapper
YetiRapper
  • YetiRapper
2 3
Antworten
42
Aufrufe
14.139
nelty
nelty
Freaky95
Antworten
19
Aufrufe
3.502
Shirocco
Shirocco
Zurück
Oben Unten