Laptop - GTX 1050 [driver 470.63.01] Manjaro linux-5.13.19-2 - X server black screen

Hello,

I’m pretty sure I had the Nvidia drivers working in the past, a long time ago (probably years), but one of the system updates broke it. This is my work laptop and I did not really need that much of a video graphic acceleration, I ended up just using the intel card.

But now I need to work on some WebGL development, and I really need the hardware acceleration.

I ended up doing a clean fresh Manjaro install, the drivers did not work out of the box, and I first thought it was a problem in the Manjaro installation tool. (mhwd) So I was organizing this report to send to their team, but as I was getting data for this report it started to seem to be more likely to be a driver/kernel issue.

So I collected data for 4 different installation:

video-hybrid-intel-nvidia-prime - modeset flag off
video-hybrid-intel-nvidia-prime - modeset flag on
video-nvidia - modeset flag off
video-nvidia - modeset flag on

And I will have to divide this post because of the forum user limitation in posting attachments.

I will probably then try older drivers and kernel versions, and if I find what works, I will post here.

Kernel: 5.13.19-2-MANJARO

NVIDIA GPU NVIDIA GeForce GTX 1050 (GP107-A) at PCI:1:0:0
VideoBIOS: 86.07.3c.00.3b
Driver: 470.63.01

When no driver installed

First I get the output for when no driver is installed, just for sample/control information.

$ mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
     video-modesetting            2020.01.13                true            PCI
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x45 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 3 associated providers: 1 name:modesetting
Provider 1: id: 0xde cap: 0x5, Source Output, Source Offload crtcs: 0 outputs: 0 associated providers: 1 name:modesetting

hybrid-intel-nvidia-prime - modeset flag off

video-hybrid-intel-nvidia-prime_modeset-off.log.gz (301.6 KB)

$ mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-prime            2021.07.28               false            PCI
     video-modesetting            2020.01.13                true            PCI
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x45 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 3 associated providers: 0 name:modesetting
Provider 1: id: 0x257 cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0
$ sudo cat /sys/module/nvidia_drm/parameters/modeset
N
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa Intel(R) HD Graphics 630 (KBL GT2)

$ prime-run glxinfo | grep "OpenGL renderer"
OpenGL renderer string: NVIDIA GeForce GTX 1050/PCIe/SSE2
$ prime-run google-chrome-stable  -> black window -> no borders

$ prime-run chromium -> black window -> no borders

$ prime-run glxgears -> works, but is it really using hardware acceleration? I don't think so.

$ prime-run firefox -> it opens up, but it seem to have no hardware acceleration

[GFX1-]: Failed GL context creation for WebRender: 0
[GFX1-]: FEATURE_FAILURE_WEBRENDER_INITIALIZE_UNSPECIFIED
[GFX1-]: Failed to connect WebRenderBridgeChild.
[GFX1-]: Fallback WR to SW-WR

//full code bellow
gl.getExtension('WEBGL_debug_renderer_info'); // "GeForce GTX 980/PCIe/SSE2"

// Firefox opens up, it return a GeForce gpu, but a different model than what I have, and if I try to open a WebGL demo, the CPU use goes up a lot and it makes me think it is not using the GPU.
$ nvidia-settings -> Opens normally

hybrid-intel-nvidia-prime - modeset flag on

video-hybrid-intel-nvidia-prime_modeset-on.log.gz (234.1 KB)

$ mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
video-hybrid-intel-nvidia-prime            2021.07.28               false            PCI
     video-modesetting            2020.01.13                true            PCI
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x45 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 3 associated providers: 0 name:modesetting
Provider 1: id: 0xde cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:modesetting
$ sudo cat /sys/module/nvidia_drm/parameters/modeset
Y
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Mesa Intel(R) HD Graphics 630 (KBL GT2)
$ prime-run glxinfo | grep "OpenGL renderer"
X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  5 (X_GLXMakeCurrent)
  Serial number of failed request:  0
  Current serial number in output stream:  28
$ prime-run glxgears -> weird behavior -> black window, but with border, high fps

Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
283668 frames in 5.0 seconds = 56733.461 FPS
258383 frames in 5.0 seconds = 51676.590 FPS
258840 frames in 5.0 seconds = 51767.887 FPS
257200 frames in 5.0 seconds = 51439.918 FPS
255582 frames in 5.0 seconds = 51116.352 FPS
258748 frames in 5.0 seconds = 51749.539 FPS
258056 frames in 5.0 seconds = 51611.180 FPS

$ prime-run google-chrome-stable -> white window -> no borders

$ prime-run chromium -> white window -> no borders
$ prime-run firefox
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
//full code bellow
gl.getExtension('WEBGL_debug_renderer_info'); // "Intel(R) HD Graphics 400"
$ nvidia-settings -> does not open
ERROR: Unable to load info from any available system

video-nvidia - modeset flag off

video-nvidia_modeset-off.log.gz (230.9 KB)

If I use manjaro gui tool to install just the nvidia drivers without the hybrid prime stuff, the GUI does not load up.

video-nvidia - modeset flag on

video-nvidia_modeset-on.log.gz (235.2 KB)

If I activate the modeset flag, it also does not load the GUI, but the debug report changes a bit.

js code to get the driver info

The code I inputted in firefox console to check what driver it was loading.
credits to gist cvan/webgl-detect-gpu.js

var canvas = document.createElement('canvas');
var gl;
var debugInfo;
var vendor;
var renderer;

try {
  gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
} catch (e) {
}

if (gl) {
  debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
  vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
  renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL

I’m kind of really confused. I read somewhere that I don’t need to run things with “prime-run”, that currently the drivers would automatically offload the work to the nvidia discrete board.

Anyway, I did the tests with the kernel version, and it did not seemed to make much difference:
5.13.19-2
5.4.150-1
4.14.248-1

I also tried nvidia 390.144 and 495.44 driver versions, and it did not seem to make any difference too.

There was some warnings about ACPID in xorg, so I just installed the acpid.service.

I also uninstalled all Manjaro/Arch nvidia package, and tried to use the nvidia_installer:

nvidia_installer_with_acpid.log.gz (280.7 KB)

If I run Chrome with “prime-run”, it shows the same black window, but if I run without it, it opens fine, but I’m unsure if it has hardware acceleration or not.

  • Canvas: Hardware accelerated
  • Canvas out-of-process rasterization: Disabled
  • Compositing: Hardware accelerated
  • Multiple Raster Threads: Enabled
  • Out-of-process Rasterization: Disabled
  • OpenGL: Enabled
  • Rasterization: Software only. Hardware acceleration disabled
  • Skia Renderer: Enabled
  • Video Decode: Software only. Hardware acceleration disabled
  • Vulkan: Disabled
  • WebGL: Hardware accelerated
  • WebGL2: Hardware accelerated

GL_RENDERER returns: ANGLE (Intel, Mesa Intel(R) HD Graphics 630 (KBL GT2), OpenGL 4.6 (Core Profile) Mesa 21.2.3)

DAWN Info:

Vulkan backend - NVIDIA GeForce GTX 1050

It says Nvidia as a Vulkan backend and that Vulkan is disabled? confusing.

Full chrome GPU report: chrome-gpu.html (95.6 KB)

I’m really confused, if anyone could help me by giving me some directions. WebGL is giving me enough power to the 2D game I’m working on, even though Idk if it is using Intel or Nvidia, but I really would want to know for sure.

I’m also having a lot of tearing and graphical glitches from the intel integrated gpu, Maybe if I could just disable intel and use the nvidia board only. I tried set in the bios to use only the nvidia card, but there is only two options there: switchable graphics and the intel integrated gpu.

Anyway, I appreciate any help.

Somehow, the xserver is misbehaving, don’t know if there’s some hidden, broken config file involved. Please run

find /etc/X11 /etc/X11/xorg.conf.d /usr/share/X11/xorg.conf.d -name "*.conf" -print -exec cat '{}' \; >allconfig.txt

and attach allconfig.txt

I ended up uninstalling the nvidia driver using the nvidia-installer tool, and then installed it again using the Manjaro tools. Just so the package system don’t get too messed up. I seems it did not make much of a difference each kind of installation.

nvidia-bug-report.log.gz (293.8 KB)

allconfig.txt (6.1 KB)

Things that I found curious in the report, but maybe it is normal, it says loading GLX twice, and then says “Indirect GLX disabled”

[     6.941] (II) Initializing extension DRI3
[     6.941] (II) Initializing extension X-Resource
[     6.941] (II) Initializing extension XVideo
[     6.941] (II) Initializing extension XVideo-MotionCompensation
[     6.941] (II) Initializing extension GLX
[     6.942] (II) Initializing extension GLX
[     6.942] (II) Indirect GLX disabled.
[     6.947] (II) AIGLX: Loaded and initialized iris
[     6.947] (II) GLX: Initialized DRI2 GL provider for screen 0
[     6.947] (II) Initializing extension XFree86-VidModeExtension
[     6.947] (II) Initializing extension XFree86-DGA
[     6.947] (II) Initializing extension XFree86-DRI
[     6.947] (II) Initializing extension DRI2
[     6.947] (II) Initializing extension NV-GLX
[     6.947] (II) Initializing extension NV-CONTROL

The report also show some coredumps:

Found module chromium with build-id: 901180919d2c8a7a0442f3c74d8218b959703df6
                                                 Stack trace of thread 9133:
                                                 #0  0x00007f6c36c70b27 n/a (vdpau_drv_video.so + 0x3b27)
                                                 #1  0x00007f6c36c73989 n/a (vdpau_drv_video.so + 0x6989)
                                                 #2  0x00007f6c36c73e1f __vaDriverInit_1_10 (vdpau_drv_video.so + 0x6e1f)
                                                 #3  0x00007f6c45217c7f n/a (libva.so.2 + 0x3c7f)
                                                 #4  0x00007f6c4521d83a vaInitialize (libva.so.2 + 0x983a)
                                                 #5  0x000055e2afc58855 n/a (chromium + 0x7a5d855)
                                                 #6  0x000055e2abe09a09 n/a (chromium + 0x3c0ea09)
                                                 #7  0x000055e2afc50119 n/a (chromium + 0x7a55119)
                                                 #8  0x000055e2ab56ef1b n/a (chromium + 0x3373f1b)
                                                 #9  0x000055e2ab56e7bf n/a (chromium + 0x33737bf)
                                                 #10 0x000055e2b1897aff n/a (chromium + 0x969caff)
                                                 #11 0x000055e2b2720994 n/a (chromium + 0xa525994)
                                                 #12 0x000055e2aaf8e7bc n/a (chromium + 0x2d937bc)
                                                 #13 0x000055e2aaccdd10 n/a (chromium + 0x2ad2d10)
                                                 #14 0x000055e2aacccc2a ChromeMain (chromium + 0x2ad1c2a)
                                                 #15 0x00007f6c53110b25 __libc_start_main (libc.so.6 + 0x27b25)
                                                 #16 0x000055e2af25cf4e _start (chromium + 0x7061f4e)
                                                 
                                                 Stack trace of thread 9154:
                                                 #0  0x00007f6c567508ca __futex_abstimed_wait_common64 (libpthread.so.0 + 0x158ca)
                                                 #1  0x00007f6c5674a270 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf270)
                                                 #2  0x00007f6c3ec6197c n/a (iris_dri.so + 0x1c897c)
                                                 #3  0x00007f6c3ec5b058 n/a (iris_dri.so + 0x1c2058)
                                                 #4  0x00007f6c56744259 start_thread (libpthread.so.0 + 0x9259)
                                                 #5  0x00007f6c531e75e3 __clone (libc.so.6 + 0xfe5e3)
                                                 
                                                 Stack trace of thread 9135:
                                                 #0  0x00007f6c567508ca __futex_abstimed_wait_common64 (libpthread.so.0 + 0x158ca)
                                                 #1  0x00007f6c5674a574 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf574)
                                                 #2  0x000055e2ace107f0 n/a (chromium + 0x4c157f0)
                                                 #3  0x000055e2aa254017 n/a (chromium + 0x2059017)
                                                 #4  0x000055e2aa78d653 n/a (chromium + 0x2592653)
                                                 #5  0x000055e2aad9429d n/a (chromium + 0x2b9929d)
                                                 #6  0x000055e2aad93783 n/a (chromium + 0x2b98783)
                                                 #7  0x000055e2aad935a7 n/a (chromium + 0x2b985a7)
                                                 #8  0x000055e2b0e9a84e n/a (chromium + 0x8c9f84e)
                                                 #9  0x000055e2aa902ecb n/a (chromium + 0x2707ecb)
                                                 #10 0x00007f6c56744259 start_thread (libpthread.so.0 + 0x9259)
                                                 #11 0x00007f6c531e75e3 __clone (libc.so.6 + 0xfe5e3)
                                                 
                                                 Stack trace of thread 9153:
                                                 #0  0x00007f6c567508ca __futex_abstimed_wait_common64 (libpthread.so.0 + 0x158ca)
                                                 #1  0x00007f6c5674a270 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xf270)
                                                 #2  0x00007f6c3ec6197c n/a (iris_dri.so + 0x1c897c)
                                                 #3  0x00007f6c3ec5b058 n/a (iris_dri.so + 0x1c2058)
                                                 #4  0x00007f6c56744259 start_thread (libpthread.so.0 + 0x9259)
                                                 #5  0x00007f6c531e75e3 __clone (libc.so.6 + 0xfe5e3)
Nov 14 13:54:41 lightwiz systemd-coredump[9371]: Process 9359 (chromium) of user 1000 dumped core.

That’s normal.