- Dec 19, 2009
- 315
- 10
- 0
Please do not consider this trolling, but I have left Android (still have my Nexus S 4G) for WP7 because the entire OS is hardware accelerated. I have high hopes that ICS will bring full-blown hardware acceleration to Android, but after reading this, I have my doubts and need some further clarification. I read this on another board somewhere after it was posted today, so I take no credit in claiming this as my own knowledge..
" There are three levels of GPU acceleration:
1. 2D based acceleration
2. Some 3D based GPU acceleration
3. Composite based OS
Starting with Gingerbread, Google enabled the first kind. Now the OS uses the GPU's ability to do things like transitions and probably some font anti-aliasing. This is about what Windows XP had.
Some of the programs (notably Opera Mobile and Samsung's Touchwiz browser) enable the second kind. What they basically do is act like video games on the phone- they render their interface with the GPU. This is not blessed by the OS other than it gets out of the way, and you don't see this sort of thing usually on desktop OSes because it requires full screen rendering (not a big deal on mobile devices) and it eats more memory than proper composite. The only desktop OS I have ever seen with something like this is the mid-00's Linux desktop with Xglx.
The third kind is an outright composite based OS where the OS takes over and renders everything offscreen on the GPU. This is what iOS does today, and I think it is also what WM7 does. Windows Vista brought about this for Windows desktops, OSX had this from day one. This is why those OSes seem so "smooth," as this is considered the modern way to do things. I know Honeycomb is not composite based by messing with it, or its task-switcher would utilize live previews of Windows instead of screenshots ala OSX's Mission Control.
No where have I seen anything that implies that Google is moving to a composite-based OS. And I don't blame them- it is a terrible transition that is unavoidable going to a composite OS when it didn't start that way. Apple only has a composite-based OS on their phones because millions of early OSX users (like me) suffered through countless composite bugs all the way through OSX's first four versions. Apple took that knowledge and applied it to the phones, which is only possible because they support such a limited phone hardware platform and because Apple has the world's only decent software compositor (again thanks to Guinea pigs like me).
Google lacks this advantage. In fact, Google is in Microsoft's shoes in the early 2000's- its platform is fragmented with trillions of different hardware combinations and most of the available GPUs can't handle full composite. You can't just force a composite-based OS in this situation because then you end up with Windows Vista. Despite all the heresay, the real problem with Vista is that it forced down a composite interface before the applications and the hardware were ready. Applications not made for composite had bugs aplenty, and only the highest-end hardware when it was released could actually handle the composite interface. That is probably why MS demands such a strict and higher-end baseline for WM7- they learned their lesson. Google also probably learned from Vista that if Android is EVER going to be composite based it won't be till years from now when 90% of hardware sold can handle it.
Google's attitude is- Why do we need a composite interface for Android? Doing most GUI calculations on the CPU is compatible with every Android phone out there, and next year when quad core phones hit there will be enough extra CPU power that brute force will fix Android's smoothness issue. All a move to composite would do is make millions of current Android devices (that have weak GPUs) obsolete, it would royally screw up the app market until developers could redo their programs for composite, and at least one version of Android would be trash as they went though the composite growing pains that EVERY composite OS (Windows, OSX, Linux, etc.) has dealt with. Google lacks MS's and Apple's advantage of having worked out those bugs on their primary OSes, so why even bother? "
Can anyone clarify this?
" There are three levels of GPU acceleration:
1. 2D based acceleration
2. Some 3D based GPU acceleration
3. Composite based OS
Starting with Gingerbread, Google enabled the first kind. Now the OS uses the GPU's ability to do things like transitions and probably some font anti-aliasing. This is about what Windows XP had.
Some of the programs (notably Opera Mobile and Samsung's Touchwiz browser) enable the second kind. What they basically do is act like video games on the phone- they render their interface with the GPU. This is not blessed by the OS other than it gets out of the way, and you don't see this sort of thing usually on desktop OSes because it requires full screen rendering (not a big deal on mobile devices) and it eats more memory than proper composite. The only desktop OS I have ever seen with something like this is the mid-00's Linux desktop with Xglx.
The third kind is an outright composite based OS where the OS takes over and renders everything offscreen on the GPU. This is what iOS does today, and I think it is also what WM7 does. Windows Vista brought about this for Windows desktops, OSX had this from day one. This is why those OSes seem so "smooth," as this is considered the modern way to do things. I know Honeycomb is not composite based by messing with it, or its task-switcher would utilize live previews of Windows instead of screenshots ala OSX's Mission Control.
No where have I seen anything that implies that Google is moving to a composite-based OS. And I don't blame them- it is a terrible transition that is unavoidable going to a composite OS when it didn't start that way. Apple only has a composite-based OS on their phones because millions of early OSX users (like me) suffered through countless composite bugs all the way through OSX's first four versions. Apple took that knowledge and applied it to the phones, which is only possible because they support such a limited phone hardware platform and because Apple has the world's only decent software compositor (again thanks to Guinea pigs like me).
Google lacks this advantage. In fact, Google is in Microsoft's shoes in the early 2000's- its platform is fragmented with trillions of different hardware combinations and most of the available GPUs can't handle full composite. You can't just force a composite-based OS in this situation because then you end up with Windows Vista. Despite all the heresay, the real problem with Vista is that it forced down a composite interface before the applications and the hardware were ready. Applications not made for composite had bugs aplenty, and only the highest-end hardware when it was released could actually handle the composite interface. That is probably why MS demands such a strict and higher-end baseline for WM7- they learned their lesson. Google also probably learned from Vista that if Android is EVER going to be composite based it won't be till years from now when 90% of hardware sold can handle it.
Google's attitude is- Why do we need a composite interface for Android? Doing most GUI calculations on the CPU is compatible with every Android phone out there, and next year when quad core phones hit there will be enough extra CPU power that brute force will fix Android's smoothness issue. All a move to composite would do is make millions of current Android devices (that have weak GPUs) obsolete, it would royally screw up the app market until developers could redo their programs for composite, and at least one version of Android would be trash as they went though the composite growing pains that EVERY composite OS (Windows, OSX, Linux, etc.) has dealt with. Google lacks MS's and Apple's advantage of having worked out those bugs on their primary OSes, so why even bother? "
Can anyone clarify this?