История изменений
Исправление shatsky, (текущая версия) :
Как это проявляется? По идее, это должно работать так:
- для обнаруженных видеокарт согласно modalias загружаются модули amdgpu и nvidia, которые биндят каждый свою карту
- модули создают в иерархии device kobjects (/sys/devices) узлы устройств, udev создает для них файлы устройств в /dev
- X-сервер выбирает, какой X-драйвер использовать (nvidia_drv для nvidia и amdgpu_drv/modesetting_drv для amdgpu) - вероятно, первый доступный, но наверняка можно указать явным образом
- X-драйвер открывает файл устройства в /dev и через него получает у драйвера нужные X-серверу и его клиентам буфера для рисования/сообщает драйверу, когда и как нужно эти буфера отобразить на дисплее
- X-клиенты, которые используют аппаратное ускорение, используют соответствующую реализацию API аппаратного ускорения (скажем, mesa или nvidia libGL для OpenGL, сейчас libglvnd динамически подставляет нужную в зависимости от того, с какой картой работает X-сервер), которая при посредничестве X-сервера открывает файл устройства в /dev, получая возможность ограниченно использовать его для отрисовки в буфера, полученные у X-сервера
У меня i915 и amdgpu отлично сосуществуют. Может, проблема все же в nvidia?
Исходная версия shatsky, :
Как это проявляется? По идее, это должно работать так:
- для обнаруженных видеокарт согласно modalias загружаются модули amdgpu и nvidia, которые биндят каждый свою карту
- модули создают в иерархии device kobjects (/sys/devices) узлы устройств, udev создает для них файлы устройств в /dev
- X-сервер выбирает, какой X-драйвер использовать (nvidia_drv для nvidia и amdgpu_drv/modesetting_drv для amdgpu) - вероятно, первый доступный, но наверняка можно указать явным образом
- X-драйвер открывает файл устройства в /dev и через него получает у драйвера нужные X-серверу и его клиентам буфера для рисования/сообщает драйверу, когда и как нужно эти буфера отобразить на дисплее
- X-клиенты, которые используют аппаратное ускорение, используют соответствующую реализацию API аппаратного ускорения (скажем, mesa или nvidia libGL для OpenGL, сейчас libglvnd динамически подставляет нужную в зависимости от того, с какой картой работает X-сервер), которая при посредничестве X-сервера открывает файл устройства в /dev, получая возможность ограниченно использовать его для отрисовки в буфера, полученные у X-сервера