back

by mikhael·14y ago·view on hn ↗
Probably the key paragraph, in relation to the recent discussion:

> In fact it was just not feasible to implement hardware accelerated drawing inside windows until recently. Because Android is designed around having multiple windows on the screen, to have the drawing inside each window be hardware accelerated means requiring that the GPU and driver support multiple active GL contexts in different processes running at the same time. The hardware at that time just didn’t support this, even ignoring the additional memory needed for it that was not available. Even today we are in the early stages of this -- most mobile GPUs still have fairly expensive GL context switching.

2 comments
So an attempt at a brief summary of (the non-thread-priorities portion of) her post:

The Android model of providing rendering isolation between apps/windows has limited hw acceleration of window contents rendering, which is a cause of some of Android's lagginess. That iOS forgoes this isolation and achieves better responsiveness is a reflection of a different security philosophy.

If this is an accurate summary, it's an interesting example of how platform design is wicked problem with complex interactions between concerns that you might expect to be orthogonal.

That sounds accurate to me. I'm not sure if its simply that iOS forgoes isolation or they've implemented isolation in a mechanism that allows for the context to be shared without security consequence.
On iOS, all standard rendering is done in a single context by the Core Animation window server which lives in SpringBoard. Only when an app adds an OpenGL ES layer to the view hierarchy does a separate context need to be created. When that happens, the render graph is split into subgraphs that are rendered to surfaces and displayed as overlays (with SpringBoard rendering all the standard layers and the app rendering the OpenGL layer)
That might have been true before, but my understanding is that the newer mobile GPUs (coming out now, 2012, etc) have pretty much free context switching. Or so the vendors like to claim.

Even if it's not true, shouldn't Google pushing for the GPU drivers to be fixed? This is a pretty obvious huge flaw [that has been pretty much solved on Desktop].