Почему Unity работает не так гладко с проприетарным драйвером Nvidia, как с открытым Intel? [закрыто]

У меня есть Thinkpad W520 со встроенной графикой Intel HD3000, а также графический чип Nvidia 1000M, и я использую Ubuntu 13.04. Я ощущаю довольно большую разницу в том, насколько гладко появляется Unity с Intel и Nvidia.

Хотя игры работают намного лучше с выделенной картой Nvidia, Unity, похоже, больше любит графику Intel. Это особенно заметно при сворачивании / разворачивании окон и использовании функции экспозиции, а также других эффектов. Почему это? Вы могли бы предположить, что лучшая видеокарта приводит к лучшей производительности Compiz, но, похоже, это не так.

Я не говорю о том, что Unity работает медленно, а скорее немного тормозит, так как я теряю кадры, то есть с Nvidia.

Это не проблема Optimus, так как мне повезло, что у меня есть BIOS, который позволяет мне выбирать то, что я предпочитаю.

Есть ли какие-либо исправления или улучшения, которые я могу сделать, чтобы улучшить внешний вид Unity и производительность с графикой Nvidia?

4
задан 13 July 2013 в 17:41

1 ответ

Короткий ответ заключается в том, что проприетарные драйверы оптимизированы для запуска проприетарного программного обеспечения (например, игр), а драйверы с открытым исходным кодом оптимизированы для запуска программ с открытым исходным кодом, таких как Unity и Gnome Shell, и оптимизация с одной стороны имеет тенденцию к сделайте все остальное медленнее.

На самом деле Unity работает более гладко с Nouveau (драйвер Nvidia с открытым исходным кодом), чем с ограниченным драйвером. К сожалению игр нет (если они вообще запускаются). Причина сложна. Оптимизации, используемые для оконных систем, отличаются от оптимизаций, используемых для игр, поэтому разработчики часто выбирают одно или другое.

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

Игры обычно являются проприетарными и написаны для Windows, где доступен только проприетарный драйвер. Поэтому разработчики игр нацелены на этот драйвер. В результате, проприетарный драйвер обычно используется геймерами, а Nvidia оптимизирует его, чтобы игры работали быстро.

С другой стороны, Unity, Nouveau и Intel имеют открытый исходный код. Unity ориентирован на драйверы с открытым исходным кодом, потому что их ошибки легче исправить, и потому что им не нужно работать на других ОС. Драйверы с открытым исходным кодом мало используются геймерами, и поэтому они не оптимизируются для игр (и поэтому игроки не используют их ... и т. Д.)

Что касается того, что вы можете сделать для исправить это: не так много, к сожалению. Отказ от использования Compiz - это то, что, по-видимому, имеет значение, но это также означает, что не следует использовать Unity, и разница не так уж велика.

(Если вы действительно видите ОГРОМНОЕ отставание, а не просто небольшое раздражение, значит, у вас есть настоящая проблема с вашей системой.)

0
ответ дан 13 July 2013 в 17:41

Другие вопросы по тегам:

Похожие вопросы: