Ubuntu 16.04 выдает «Ошибка X ошибочного запроса: BadValue (целочисленный параметр вне диапазона для операции)» при запуске программ OpenGL

18

У меня на плате две две видеокарты, одна интегрируется в процессор Intel, одна - карта nvidia.

Я хочу использовать интегрирующий для рендеринга рабочего стола, NV-карту для расчета с CUDA. Я переключаюсь на использование интегрирующего в «Настройки NVIDIA X Server», после того как я установил «nvidia-modprobe», он работает так, как я хочу.

но где проблема с glx, когда я запускаю glxinfo.

name of display: :0
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  154 (GLX)
Minor opcode of failed request:  24 (X_GLXCreateNewContext)
Value in failed request:  0x0
Serial number of failed request:  37
Current serial number in output stream:  38

В логе xorg это libglx.so в

[     3.597] (II) "glx" will be loaded by default.
[     3.597] (II) LoadModule: "glx"
[     3.599] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     3.612] (II) Module glx: vendor="X.Org Foundation"

Есть ли способ, которым я могу получить правильную работу glx?

hangkongwang
источник

Ответы:

10

Решено, я настроил то, что хочу. Я разместил ответ, показанный ниже, на GitHub .

  1. Удалите все пакеты Nvidia и переустановите пакеты xorg.

    sudo apt-get purge nvidia*  
    sudo apt-get install --reinstall xserver-xorg-video-intel libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core   
    sudo dpkg-reconfigure xserver-xorg   
    
  2. Установите cuda8. Тебе нужно:

    Нажмите клавиши Crtl + Alt + F1.

    sudo service lightdm stop  
    sudo init 3  
    

    Я использую файл cuda8 .run, чтобы установить его, затем при установке он предложит установить драйвер карты nvidia ?.

    Выберите да.

    Он подскажет, хотите ли вы установить nvidia opengl?

    Выберите «нет», это важный выбор, если вы скажете «да», он будет охватывать библиотеки «mesa *».

    После этого выберите значение по умолчанию.

    После установки перезагрузите компьютер.

    sudo reboot
    
hangkongwang
источник
2
Следите за этим - я получил похожую ошибку, вызванную обновлениями графики. Простая перезагрузка исправила это для моего компьютера без необходимости удаления / переустановки драйверов nvidia.
Птерозавр
1
На самом деле это кажется большой работой, которая может и не понадобиться ... Была похожая проблема, и пришлось исправить номер ключа мод (использовался Mod1 вместо Mod4)
Кольцо Ø
У меня была похожая ошибка при запуске приложений Wine OpenGL (glxgears и glxinfo работали без проблем), и решение было просто обновить с nvidia-410 (Ubuntu 18.04) до nvidia-415 (находится на ppa «графические драйверы» , версия 415.27-0ubuntu0 ~ gpu18.04.1). Надеюсь, что это может помочь кому-то в будущем.
Авио
3

Для тех, кто решает этот вопрос и пытается использовать OpenGL на автономном сервере: вы можете также получить это сообщение, если у вас установлены драйверы NVIDIA GLX, но на самом деле на вашем сервере нет карты NVIDIA (например, если используется AWI Deep Learning Base AMI) на машине без графического процессора).

Чтобы подтвердить, попробуйте запустить X-сервер с +iglx(который должен позволять glxinfoработать), и посмотрите, сообщает ли glxinfoвыход (например xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo) client glx vendor string: NVIDIA Corporation. Если это так, попробуйте переключиться на AMI без каких-либо вещей NVIDIA.

Мэтью Ратц
источник
3

Понизьте драйвер NVIDIA до 340.12

Ранее был 384.11 по умолчанию.

Это можно легко сделать на software-properties-gtkвкладке «дополнительные драйверы».

Затем перезагрузите компьютер.

Ubuntu 16.04, NVIDIA Corporation GF119 [NVS 310].

Существует также похожая проблема в Steam : Steam не запускается в Ubuntu 16.04

Проблема воспроизводима с минимальным приветом мира GLUT:

#include <stdlib.h>

#include <GL/glut.h>

int main(int argc, char *argv[]) {
    glutInit(&argc, argv);
    glutInitWindowSize(800, 600);
    glutInitWindowPosition(200, 100);
    glutCreateWindow(argv[0]);
    glutMainLoop();
    return EXIT_SUCCESS;
}

Ubuntu 19.04: проблема больше не возникает

У вас давно этого не было, просто обновите Ubuntu, если можете. На данный момент на 390.116 работает отлично.

На моем Lenovo ThinkPad P51 потребовалось внести незначительные изменения в настройки BIOS: загрузка Ubuntu 17.10 застряла при появлении сообщения «Запущен демон NVIDIA Persistence» после установки nVidia 384.90

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
источник
1

Другая ситуация, в которой может возникнуть эта ошибка, - это когда вы пытаетесь запустить окна OpenGL при работе в среде chroot. В этом посте есть предложение добавить + iglx в команду xserver для lightdm, что решило проблему для меня. Размещение этого ответа здесь для наглядности, так как другой ответ не был виден в Google.

aleksk
источник
0

У меня было то же сообщение об ошибке, но оно было вызвано glutInitContextVersion (4, 0); поскольку мое оборудование не поддерживало OpenGL 4.0, я изменил вызов на glutInitContextVersion (3, 3); и все стало хорошо. Я использую проприетарный драйвер NVidia.

vollitwr
источник
1
Не могли бы вы объяснить, как вы это сделали?
Zanna
glutInitContextVersionне определено: в freeglut3-dev 2.8.1, Ubuntu 15.10, связанный: stackoverflow.com/questions/22055522/… Но это интересная подсказка.
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件
Но я тоже пытался, glfwWindowHint(GLFW_CONTEXT_VERSIONи это не решило проблему :-( stackoverflow.com/questions/18113270/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件