You are not logged in.
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
How was X started before you restart it with `startx`?
Offline
Do you use a VM or why is there this VMware string in the output?
Offline
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
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
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
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
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
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
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
P.S. : %I removed and understood !
Offline
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
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