xrandr выглядит вот так:
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x54 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 2 associated providers: 0 name:Unknown AMD Radeon GPU @ pci:0000:04:00.0
Provider 1: id: 0x21e cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0
Ядро сконфигурировано в соответствии с gentoo wiki для amd ryzen, amdgpu и nvidia. Иксы сконфигурированы по мануалу от nvidia (там в самом конце пример xorg.conf, только modesetting я заменил на amdgpu): https://download.nvidia.com/XFree86/Linux-x86_64/435.21/README/primerenderoffload.html
В соответствии с конфигурацией, по-умолчанию используется amdgpu, но nvidia успешно загружается, о чём я вижу сообщения в логе.
После этого по тому же мануалу я могу запускать отдельные процессы так, чтобы GLX использовался от nvidia:
__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears
Это работает. В виджете загрузки системы я вижу, что glxgears нагружает GPU nvidia. При этом для отрисовки окон и пользовательского интерфейса продолжает использоваться amdgpu.
Проблема заключается в том, что у встроенной карты мало памяти (512), а я работаю в лейауте 10560x3780, ещё и с разным масштабированием для экранов, и в логах постоянно возникают ошибки связанные с аллокацией памяти, правда всё работает, но подглючивает. Увеличить память встроенной видяхи bios не позволяет, увеличить его через параметры модуля ядра тоже нельзя.
При этом у дискретной карточки nvidia и памяти больше в 8 раз и мощности побольше. Но если я переключаю xorg.conf на неё по-умолчанию, то у меня просто ничего не отрисовывается. Если я прописываю "__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 __GLX_VENDOR_LIBRARY_NAME=nvidia" в переменные окружения перед запуском оконного менеджера и прочего - рисуются чёрные прямоугольники.
Можно ли добиться использования карточки nvidia для xorg по-умолчанию?
Это ноутбук?
Обсуждают сегодня