Por que a opção "Forçar renderização da GPU" está desativada por padrão das opções do desenvolvedor?

12

Por que esse recurso está desativado? Quando o ligo, muitos aplicativos ficam incríveis e impressionantes com gráficos suaves. Parece que seria bom se estivesse ativado por padrão.

O artigo vinculado nesta pergunta diz que a aceleração de hardware não era padrão até a versão 4.0.

A opção "Forçar renderização da GPU" está direcionada para aplicativos que usam a API 3.0 e inferior?

trusktr
fonte

Respostas:

12

Quando a renderização da GPU foi adicionada, ela não era confiável. Às vezes, era mais lento que a renderização de software e havia alguns tipos de GUIs com as quais simplesmente não funcionava. Por esse motivo, coube ao desenvolvedor do aplicativo testá-lo com a renderização da GPU e definir uma opção no manifesto do aplicativo (o mesmo local em que ele declara suas permissões) para ativar a renderização da GPU para esse aplicativo. A opção era principalmente facilitar para os desenvolvedores testar o efeito da renderização da GPU no aplicativo. Isso faz sentido porque:

  1. a maioria dos usuários não sabe ou não se importa com o que é renderização GPU e não sabe se deve estar ativada ou desativada para um aplicativo específico; e
  2. a configuração realmente precisa ser por aplicativo, não em todo o dispositivo, porque alguns aplicativos simplesmente não funcionam com a renderização da GPU ativada.

Após o desenvolvimento, quando o 4.0 apareceu, a renderização da GPU ficou mais confiável, tornando-se o padrão para todos os aplicativos: agora cabe ao desenvolvedor desabilitar explicitamente a renderização da GPU, se causar um problema no aplicativo. (Isso é muito raro agora.) A opção "Forçar renderização da GPU" é vestigial e raramente usada até pelos desenvolvedores agora, porque já é o padrão.

Dan Hulme
fonte
6

Para citar uma postagem do XDA :

A ativação dessa preferência nas opções do desenvolvedor descarrega a tarefa de renderizar componentes da janela, como botões, texto e cálculos gráficos 2D complexos para a GPU. Isso geralmente resulta em renderização da interface do usuário muito mais rápida, incluindo animações. Por um lado, você definitivamente alcançará uma melhor taxa de quadros (e, portanto, uma experiência suave) em todo o sistema, mas poderá acabar usando mais bateria. Em certos dispositivos, a GPU consome mais energia da CPU, portanto, você pode observar uma duração de bateria 5-15% menor com a opção ativada.

Eu recomendaria ter essa opção ativada em dispositivos com CPUs mais fracas, por exemplo, você raramente precisará ativá-la na CPU ARM de núcleo duplo de 1,4ghz.

Transferir a renderização da interface do usuário para a GPU tem benefícios óbvios, para que a CPU possa trabalhar em outras tarefas importantes, como E / S de banco de dados, manipulação de dados, cálculos de layout e resposta a outras entradas do usuário.

Dito isso, o usuário deve decidir se deseja trocar a duração da bateria pelo desempenho. E acho que a maioria das pessoas gostaria que seus telefones durassem mais e mantivessem o desempenho a uma taxa aceitável.

geffchang
fonte
0

É para os desenvolvedores testarem seus aplicativos e é por isso que eles não estão ativados por padrão.

Sameer
fonte