ubuntu 16.04 fornece “X Erro da solicitação com falha: BadValue (parâmetro inteiro fora do intervalo para operação)” ao executar programas OpenGL

9

Eu tenho duas duas placas gráficas a bordo, uma é a integração na Intel cpu, uma é a placa nvidia.

Eu quero usar o integrador para renderizar o desktop, o cartão NV para calcular com o cuda. Eu mudo para usar a integração em "Configurações do NVIDIA X Server", depois que eu instalei o "nvidia-modprobe" funcionou como eu quero.

mas onde há um problema com o glx, quando eu executo o 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

No log xorg libglx.so em

[     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"

Existe uma maneira de obter o glx corretamente?

    
por hangkongwang 17.03.2017 / 10:01

4 respostas

3

Resolvido, configurei o que quero. Postei a resposta mostrada abaixo em GitHub .

  
  1. Remova todos os pacotes da Nvidia e reinstale os pacotes do 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.   
  3. Instale o cuda8. Você precisa:

         

    Pressione as teclas Crtl + Alt + F1.

    sudo service lightdm stop  
    sudo init 3  
    
         

    Eu uso o arquivo cuda8 .run para instalá-lo e, em seguida, instalá-lo perguntará se você deseja instalar o driver da placa nvidia.

         

    Escolha sim.

         

    Ele irá perguntar se você deseja instalar o nvidia opengl?

         

    Escolha não, esta é uma escolha crucial, se você disser "sim" aqui, ela cobrirá as bibliotecas "mesa *".

         

    Depois disso, escolha o padrão.

         

    Após a instalação, reinicie.

    sudo reboot
    
  4.   
    
por hangkongwang 24.03.2017 / 05:10
1

Faça o downgrade do driver da NVIDIA para 340.12

Anteriormente, era 384,11 por padrão.

Isso pode ser feito facilmente na guia software-properties-gtk "drivers adicionais".

Em seguida, reinicie.

Ubuntu 16.04, NVIDIA Corporation GF119 [NVS 310].

Existe também um problema semelhante no Steam: O Steam não inicia Ubuntu 16.04

O problema é reproduzível com um mínimo de GLUT hello world:

#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;
}
    
0

Eu tive a mesma mensagem de erro, mas foi causada por glutInitContextVersion (4, 0); porque meu hardware não suportava OpenGL 4.0 Eu mudei a chamada para glutInitContextVersion (3, 3); e as coisas ficaram bem. Estou usando um driver NVidia proprietário.

    
por vollitwr 09.09.2017 / 11:07
0

Outra situação em que esse erro pode surgir é quando você está tentando executar janelas OpenGL durante a execução em um ambiente chroot. Este post tem um sugestão para adicionar + iglx no xserver-command para lightdm, que resolveu o problema para mim. Colocando esta resposta aqui para visibilidade, a outra resposta não apareceu proeminentemente no google.

    
por aleksk 08.11.2017 / 03:47