You are not logged in.

#1 2017-05-22 13:35:24

Yseinborm
Member
Registered: 2016-04-18
Posts: 9

[SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

Hello,

I have a little problem since ~march (since libglvnd ?)
When the computer start and X11 is launched, opengl games are slow and crappy.
glxinfo give me this :

$ glxinfo | grep vendor
server glx vendor string: SGI
client glx vendor string: Mesa Project and SGI
OpenGL vendor string: VMware, Inc.

After killing X server (ctrl-alt-backsp) and restart with startx, the glxinfo vendor are good and games run flawlessly  :

$ glxinfo | grep vendor
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation

Each time, i need to kill my X server and restart it after starting my computer...

Tried to copy paste the nvidia outputclass section of /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf in my xorg.conf with no better result.
Tried to play with the modesetting kernel parameter too.

Tried without xorg.conf and with a new xorg.conf generated with nvidia-xconfig (run with the last one currently).

Tried to add to the new xorg.conf : Section "Module"  Load           "/usr/lib/nvidia/xorg/libglx.so" EndSection (with the line return), but now, X11 crash at computer start. Then i relaunch it and X11 start with the good opengl vendor.
The log after the crash :

...
[     9.801] (II) "glx" will be loaded by default.
[     9.801] (II) LoadModule: "/usr/lib/nvidia/xorg/libglx.so" (glx)
[     9.801] (WW) LoadModule: given non-canonical module name "/usr/lib/nvidia/xorg/libglx.so"
[     9.801] (II) Loading /usr/lib/nvidia/xorg/libglx.so
[     9.845] (II) Module glx: vendor="NVIDIA Corporation"
[     9.845] »··compiled for 4.0.2, module version = 1.0.0
[     9.845] »··Module class: X.Org Server Extension
[     9.846] (II) NVIDIA GLX Module  381.22  Thu May  4 00:17:15 PDT 2017
[     9.846] (II) LoadModule: "glx"
[     9.848] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[     9.855] (II) Module glx: vendor="X.Org Foundation"
[     9.855] »··compiled for 1.19.3, module version = 1.0.0
[     9.855] »··ABI class: X.Org Server Extension, version 10.0
...
...
[    10.690] (II) Initializing extension GLX
[    10.690] (II) Indirect GLX disabled.
[    10.690] (II) AIGLX: Screen 0 is not DRI2 capable
[    10.690] (EE) AIGLX: reverting to software rendering
[    10.791] (II) IGLX: enabled GLX_MESA_copy_sub_buffer
[    10.792] (II) IGLX: Loaded and initialized swrast
[    10.792] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    10.792] (EE) Not enabling extension GLX: maximum number of events or errors exceeded.
[    10.792] (EE)·
Fatal server error:
[    10.792] (EE) __glXExtensionInit: AddExtensions failed                                                     
[    10.792] (EE)·
[    10.792] (EE)·
Please consult the The X.Org Foundation support·
...

The question is : how to force the nvidia glx lib to load at first start and scrap the mesa things ?
It seems that the nvidia glx binary crash or are not a priority the first time the X11 server start.

Some info:

$ uname -a
Linux Gaia 4.10.13-1-ARCH #1 SMP PREEMPT Thu Apr 27 12:15:09 CEST 2017 x86_64 GNU/Linux

$ lshw -C video
 *-display                 
       description: VGA compatible controller
       produit: GK106 [GeForce GTX 650 Ti]
       fabriquant: NVIDIA Corporation
       identifiant matériel: 0
       information bus: pci@0000:01:00.0
       version: a1
       bits: 64 bits
       horloge: 33MHz
       fonctionnalités: vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       ressources: irq:31 mémoire:f6000000-f6ffffff mémoire:e8000000-efffffff mémoire:f0000000-f1ffffff portE/S:e000(taille=128) mémoire:c0000-dffff

$ yaourt -Qi nvidia
Nom                      : nvidia
Version                  : 381.22-1
...

$ yaourt -Qi libglvnd
Nom                      : libglvnd
Version                  : 0.2.999+g4ba53457-2

Last edited by Yseinborm (2017-05-25 10:45:15)

Offline

#2 2017-05-22 13:37:20

tom.ty89
Member
Registered: 2012-11-15
Posts: 897

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

How was X started before you restart it with `startx`?

Offline

#3 2017-05-23 08:06:45

ChemBro
Member
Registered: 2008-10-22
Posts: 703

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

Do you use a VM or why is there this VMware string in the output?

Offline

#4 2017-05-23 08:29:41

Yseinborm
Member
Registered: 2016-04-18
Posts: 9

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

I have a systemctl service "autologin@tty7.service" with this

[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --noclear --autologin apple tty7 %I linux

And this in .bashrc

[[ -z $DISPLAY && $XDG_VTNR -eq 7 ]] && bash -c "startx -- -keeptty"

This is a physical machine.

Offline

#5 2017-05-23 09:22:29

Yseinborm
Member
Registered: 2016-04-18
Posts: 9

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

I little test : purged my .xinitrc and added "glxinfo | grep vendor >> ~/.xlog" to it, then reboot.
The nvidia vendor is now correct (witch the new xorg.conf and 'Load "/usr/lib/nvidia/xorg/libglx.so"') but always crash the first time.
Maybe a KMS pb ?

Offline

#6 2017-05-23 13:32:20

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

What is the output of ls -l /etc/systemd/system/default.target ?

If the symlink doesn't exist or points to something other then multi-user.target you should change default target.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#7 2017-05-23 20:04:14

Yseinborm
Member
Registered: 2016-04-18
Posts: 9

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

I don't have a "/etc/systemd/system/default.target" :

$ pwd
/etc/systemd/system
$ ls -l
total 44
-rw-r--r-- 1 root root  436  4 déc.  23:55 aria2cd.service
-rw-r--r-- 1 root root 1672  3 oct.   2014 autologin@tty7.service
-rw-r--r-- 1 root root  216 29 nov.  18:53 gamepad.service
drwxr-xr-x 2 root root 4096  3 oct.   2014 getty@.service.d
drwxr-xr-x 2 root root 4096  3 oct.   2014 getty.target.wants
drwxr-xr-x 2 root root 4096 16 janv.  2016 graphical.target.wants
drwxr-xr-x 2 root root 4096 23 mai   10:26 multi-user.target.wants
-rw-r--r-- 1 root root  487 18 nov.   2012 network.service
-rw-r--r-- 1 root root  278 12 nov.   2016 pacman.service
drwxr-xr-x 2 root root 4096 20 nov.   2014 printer.target.wants
drwxr-xr-x 2 root root 4096 25 sept.  2016 sockets.target.wants

autologin@tty7.service is from 2014. There is a symlink to it from 2013 :

$ ls -l getty.target.wants/getty@tty7.service
lrwxrwxrwx 1 root root 42 24 févr.  2013 getty.target.wants/getty@tty7.service -> /etc/systemd/system/autologin@tty7.service

The full autologin@tty7.service :

$ cat autologin@tty7.service | grep -v "#"

[Unit]
Description=X on %I
After=systemd-user-sessions.service plymouth-quit-wait.service

Before=getty.target
IgnoreOnIsolate=yes

ConditionPathExists=/dev/tty0

[Service]
ExecStart=-/sbin/agetty --noclear --autologin apple tty7 %I linux
Type=idle
Restart=no
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
KillMode=process
IgnoreSIGPIPE=no

Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=

KillSignal=SIGHUP

[Install]
Alias=getty.target.wants/getty@tty7.service

Offline

#8 2017-05-24 07:16:08

tom.ty89
Member
Registered: 2012-11-15
Posts: 897

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

Lone_Wolf wrote:

What is the output of ls -l /etc/systemd/system/default.target ?

If the symlink doesn't exist or points to something other then multi-user.target you should change default target.

[tom@localhost ~]$ ls -l /usr/lib/systemd/system/default.target 
lrwxrwxrwx 1 root root 16 Jan 29 06:32 /usr/lib/systemd/system/default.target -> graphical.target

@Yseinborm, may or may not be relevant, but please get rid of the "%I" in:

ExecStart=-/sbin/agetty --noclear --autologin apple tty7 %I linux

Also, since you auto login and start X on tty7, how do you make it switch from tty1 to tty7 automatically? I don't see that you are using chvt.

Last edited by tom.ty89 (2017-05-24 08:42:54)

Offline

#9 2017-05-24 08:28:46

tom.ty89
Member
Registered: 2012-11-15
Posts: 897

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

I am not experiencing the same thing by doing this:

[tom@localhost ~]$ sudo systemctl edit --full getty@.service
(add " --autologin tom" between "agetty" and " --noclear" in ExecStart=)
[tom@localhost ~]$ sudo systemctl enable getty@tty7
Created symlink /etc/systemd/system/getty.target.wants/getty@tty7.service → /etc/systemd/system/getty@.service.
[tom@localhost ~]$ cat .bash_profile 
#
# ~/.bash_profile
#

[[ -f ~/.bashrc ]] && . ~/.bashrc

[[ $XDG_VTNR -eq 7 ]] && (chvt 7; startx)
[tom@localhost ~]$ cat .xinitrc 
#!/bin/sh

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

xset s off -dpms
exec i3
[tom@localhost ~]$ pacman -Qs libglvnd
local/libglvnd 0.2.999+g4ba53457-2
    The GL Vendor-Neutral Dispatch library
[tom@localhost ~]$ pacman -Qs ^NVIDIA
local/libvdpau 1.1.1-2
    Nvidia VDPAU library
local/nvidia 381.22-1
    NVIDIA drivers for linux
local/nvidia-utils 381.22-1
    NVIDIA drivers utilities
[tom@localhost ~]$ printenv XDG_VTNR
7
[tom@localhost ~]$ glxinfo | grep vendor
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation

No /etc/X11/xorg.conf but only:

[tom@localhost ~]$ cat /etc/X11/xorg.conf.d/nvidia.conf 
Section "Screen"
	Identifier	"Screen0"
	Option		"DPI" "96 x 96"
	Option		"metamodes" "nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"
EndSection

Last edited by tom.ty89 (2017-05-24 08:41:07)

Offline

#10 2017-05-24 10:56:47

Yseinborm
Member
Registered: 2016-04-18
Posts: 9

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

tom.ty89 wrote:

Also, since you auto login and start X on tty7, how do you make it switch from tty1 to tty7 automatically? I don't see that you are using chvt.

Changing to tty7 was done automatically on X start after computer start.


The chvt do the trick. But there is a little pb, the X server do not start and return this :

/usr/lib/xorg-server/Xorg.wrap: Only console users are allowed to run the X server
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

need to add bash -c before startx :

[[ -z $DISPLAY && $XDG_VTNR -eq 7 ]] && (chvt 7; bash -c startx)

Is there a more elegant solution ?


By the way : thanks a lot smile

P.S. : %I removed and understood !

Offline

#11 2017-05-24 11:13:02

tom.ty89
Member
Registered: 2012-11-15
Posts: 897

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

Strange. For me without `chvt` it would stay on tty1 after boot (no matter if getty@tty1 is enabled or not), and `startx` on tty7 would fail because of "no screen found".

So I wonder what exactly was doing the tty switching for you, and it might be relevant to why the X autostarted on your system is not proper.

I don't need `bash -c`, no idea why you need that, but I put that line in .bash_profile instead of .bashrc, because .bash_profile is only parsed in login shell, and because of that, I omitted the empty-DISPLAY check as well. (Actually I am not sure if the DISPLAY check matters anyway, because XDG_VTNR is apparently set only in login shell.)

Last edited by tom.ty89 (2017-05-24 11:18:35)

Offline

#12 2017-05-25 10:44:37

Yseinborm
Member
Registered: 2016-04-18
Posts: 9

Re: [SOLVED] glxinfo : mesa opengl vendor >> game very slow (nvidia)

I'll change the topic to solved, as my initial problem is no more.

So I wonder what exactly was doing the tty switching for you, and it might be relevant to why the X autostarted on your system is not proper.

I don't know where to search for this...

Offline

Board footer

Powered by FluxBB