LINUX.ORG.RU

История изменений

Исправление 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-сервера