2013-06-28 2 views
0

Я ищу способ контролировать, какие приложения имеют доступ к использованию графического процессора и видеопамяти при использовании X.Org в Linux.Управление доступом к видеокарте в X.Org

Установка:

Я разрабатываю встроенную систему Linux, где несколько 3D игры запускаются при загрузке системы. Я начинаю все игры, чтобы они присутствовали в памяти, что позволяет быстро переключаться между ними.

Идея состоит в том, что за один раз видна только 1 игра. Это делается путем сопоставления окон активной игры и разворачивания окон неактивных. То есть «сведение к минимуму» окон неактивных игр.

Проблема:

Производительность активной игры не является оптимальной, и поэтому кажется, что неактивные игры по-прежнему занимают ресурсы видеокарты, даже если их окна некартированные от X.Org ,

То, что я пытался до сих пор:

Мое текущее решение приостановить неактивные игры и только один активный возобновляются. Это, однако, не оптимально, так как я хотел бы сделать IPC-связь с неактивными играми.

Вопрос:

Как запретить доступ к приложениям в Linux для видеокарты, так что их дро вызывает к видеокарте просто игнорируются.

ответ

2

Если ваши игры начинаются медленно, пришло время оптимизировать это.

Если игра неактивна и не использует ресурсы графического процессора, драйвер в конечном итоге заменит все ресурсы OpenGL из памяти графического процессора, поэтому, когда игра возобновится, она будет испытывать некоторую заметную задержку, когда драйвер OpenGL будет заменять ресурсы обратно на GPU meory ,

Просто удалить одно окно недостаточно, вам также необходимо остановить основной цикл игры, чтобы они не потребляли память ЦП.

Как я могу запретить Linux доступ к приложению X11 к видеокарте, так что их вызовов отрисовки видеокарте просто игнорируются.

С нынешним поколением X11 и драйверами: перейдите на другой VT, чем сервер X11, на котором он работает. Вы можете запустить любое количество X11-серверов, которые вам нравятся, но только один может быть активен на дисплее VT в любой момент времени.

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

+0

Игры должны быть показаны в течение 1 секунды после его выбора, поэтому мы не можем полагаться на загрузку игровых данных с диска. Из наших экспериментов до сих пор замена ресурсов обратно в память GPU достаточно быстра, чтобы соответствовать этому требованию. – uldall

+0

Потребление циклов процессора обрабатывается с помощью [cpulimit] (https://github.com/opsengine/cpulimit). – uldall

+0

Наличие нескольких серверов X может быть решением, но это становится бесполезным для обработки оконным менеджером в отношении оверлейных окон, всплывающих окон и т. Д. – uldall