Почему «Принудительный рендеринг с помощью графического процессора» отключен по умолчанию для параметров разработчика?

12

Почему эта функция отключена? Когда я включаю его, многие приложения и становятся быстрыми и крутыми с плавной графикой. Похоже, было бы неплохо, если бы он был включен по умолчанию.

Связанная статья в этом вопросе говорит, что аппаратное ускорение не было по умолчанию до 4.0.

Опция «Force GPU Rendering» предназначена для приложений, использующих API версии 3.0 и ниже?

trusktr
источник

Ответы:

12

Когда был впервые добавлен рендеринг с помощью графического процессора, он был очень ненадежным. Иногда это было бы медленнее, чем программный рендеринг, и были некоторые виды графических интерфейсов, с которыми он просто не мог работать. По этой причине разработчик приложения должен был протестировать свое приложение с визуализацией с помощью графического процессора и установить опцию в манифесте приложения (там же, где он объявляет свои разрешения), чтобы включить визуализацию с помощью графического процессора для этого приложения. Основной целью было облегчить разработчикам тестирование эффекта рендеринга с помощью графического процессора в их приложении. Это имеет смысл, потому что:

  1. большинство пользователей не знают или не заботятся о том, что такое рендеринг с помощью графического процессора, и не знают, должно ли оно быть включено или выключено для какого-либо конкретного приложения; и
  2. настройка действительно должна быть для каждого приложения, а не для всего устройства, потому что некоторые приложения просто не будут работать с включенным рендерингом GPU.

После дальнейшего развития, когда вышла 4.0, рендеринг с помощью графического процессора стал более надежным, поэтому он стал стандартным для всех приложений: теперь разработчик должен явно отключить рендеринг с помощью графического процессора, если это вызывает проблемы в их приложении. (Это сейчас очень редко.) Опция «Force GPU Rendering» является рудиментарной и редко используется даже разработчиками сейчас, потому что она уже используется по умолчанию.

Дэн Халм
источник
6

Цитировать из сообщения XDA :

Включение этого параметра в параметрах разработчика снимает задачу рендеринга таких компонентов окна, как кнопки, текст и сложные расчеты 2D-графики, в графический процессор. Это часто приводит к гораздо более быстрой визуализации пользовательского интерфейса, включая анимацию. С одной стороны, вы определенно добьетесь лучшей частоты кадров (и, следовательно, сглаживания) во всей системе, но в итоге вы можете использовать больше батареи. На некоторых устройствах графический процессор потребляет больше энергии ЦП, поэтому при включенной опции вы можете наблюдать снижение времени автономной работы на 5-15%.

Я бы порекомендовал включить эту опцию на устройствах с более слабыми процессорами, например, вам редко нужно включать ее на двухъядерном процессоре ARM 1,4 ГГц.

Выгрузка рендеринга пользовательского интерфейса в графический процессор имеет очевидные преимущества, так что процессор может работать над другими важными задачами, такими как ввод-вывод базы данных, манипулирование данными, расчеты компоновки и реагирование на другие вводимые пользователем данные.

Тем не менее, пользователь должен решить, хочет ли он обменять время автономной работы на производительность. И я думаю, что большинство людей хотели бы, чтобы их телефоны работали дольше и сохраняли производительность на приемлемом уровне.

geffchang
источник
0

Он предназначен для разработчиков, чтобы тестировать свои приложения, поэтому он не включен по умолчанию.

Самир
источник