LINUX.ORG.RU

Как прописать параметры enveronment только для одной из видеокарт?

 , , ,


0

1

Ситуация значит такая:

Имеются в системе дискретка RX 6400 и встройка Vega 11. Монитор подключен во встройку, а игры запускаются через DRI_PRIME=1.

Это позволяет немного экономить видеопамять, плюс у встройки есть аппаратные декодеры видео (чего дискретка лишена).

Только вот есть нюанс. Есть у Vega 11 врожденная болячка. Видеоядро намертво вешает систему в случайный момент, если не прописать в параметры окружения AMD_DEBUG=nodcc.

Но эта переменная ощутимо срезает производительность дискретки, если прописать в /etc/enveronment/

И как быть?

Можно ли прописать AMD_DEBUG=nodcc только для Vega 11? В смысле именно глобально прописать. Ведь у меня все Кеды считай на ней запущенны и все программы кроме игр (и того что на Вулкане, там дискретка сама выбирается).

Заранее спасибо.

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

cobold ★★★★★
()
Ответ на: комментарий от cobold

Ну процессы то скорее всего как раз разные. Встройка рисует - DE (а так же браузер, плееры и прочее), дискретка - игры.

Можно поподробнее?


Дополнил:

А если прописать глобально переменную, а при запуске игр пускать их через unset переменной, так будет работать?

Ничего не «сломается»?

Vochatrak-az-ezm ★★
() автор топика
Последнее исправление: Vochatrak-az-ezm (всего исправлений: 1)

Я бы просто в консоли вводил перед запуском, а потом сам процесс например стим. Но у меня отдельный пользователь для игр, стримов и конференций, поэтому команды в консоли в основном игровые и нужно просто пару раз вверх пролистать и выполнить. Так можно для пользователя сделать переменную, может не будет тормозить.

ext4
()
Последнее исправление: ext4 (всего исправлений: 1)

Думаю стоит попробовать сделать скрипт для запуска игры, ставить && чтобы по завершении возвращалась переменная нужная для встройки, так как по идее && означает слелать после того как будет выполнена предыдущая команда.

anonymous
()
Ответ на: комментарий от Vochatrak-az-ezm

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

Юзайте скрипты. Что-то типа runGame <game>, где runGame - скрипт для запуска игр.

Ну и все таки не удобно писать в каждый desctop файл команду вручную.

Я вообще игры через bwrap запускаю, создавая для каждой индивидуальную песочницу со своими параметрами. Песочницу, или .desktop-файл только один раз на игру создать надо - имхо, не слишком большой труд.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)
Ответ на: комментарий от Vochatrak-az-ezm

Я переключаю полностью пользователя в gdm, а не просто запускаю от другого пользователя. Проблема с правами доступа если файлы скачаны другим пользователем, в windows и библиотека игр на ntfs3, тогда запускаю это и всё норм

# от root
chown -R games:games /media/*/SteamLibrary* /SteamLibrary*
setfacl -R -m default:user:games:rwX /media/*/SteamLibrary* /SteamLibrary*
setfacl -R -m user:games:rwX /media/*/SteamLibrary* /SteamLibrary*
setfacl -R -m default:group:games:rwX /media/*/SteamLibrary* /SteamLibrary*
setfacl -R -m group:games:rwX /media/*/SteamLibrary* /SteamLibrary*
ext4
()
Ответ на: комментарий от Vochatrak-az-ezm

Ну и входить заново в аккаунт самособой, хотя можно попробовать скопировать директорию Steam новому пользователю и исправить владельца, а можно как нормальный линуксойд извратится с символьными ссылками. Да можно скопировать весь хомяк уж тогда.

ext4
()
Последнее исправление: ext4 (всего исправлений: 3)
Ответ на: комментарий от Vochatrak-az-ezm

А смысл? За пределы запустившего игру пользователя она же все равно не сможет вылезти.

  • Не доберётся даже до файлов пользователя.
  • Можно отрубить доступ в сеть.
  • Легко задаются переменные окружения.
  • Программа в песочнице может нагадить только в открытые для записи директории.

Кстати, последний пункт легко и непринуждённо решает проблему размещения кеша браузера в RAM.

QsUPt7S ★★
()
Ответ на: комментарий от Vochatrak-az-ezm

А оверхед большой?

Оверхеда нет вообще, так как bwrap работает через механизм namespaces (пространства имён Linux). То есть, для процессов внутри песочницы просто задаются имена системных объектов, отличных от тех, что заданы для остальных процессов.

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)