I have laptop with integrated gpu and Nvidia gpu and it seems that I have something somewhere badly configured. When I try to open Chrome for example, it takes around 2 minutes to open with many errors
When I disable hardware acceleration in Chrome, it opens instantly without any problems. It happens also for example with Steam with exactly the same message. Is there something I can do?
Nvk is collabora’s fancy new open source vulkan driver. Recent kernels probably support it, but it should definitely not be loading if you set yoir driver to "nvidia". Is this your full config?
Yes, it is. You can look at the whole repository. There is also home.nix configuration for home manager, but nothing relevant there I think, only setting dotfiles and some settings for apps. Nothing relevant to nvidia
This is log after opening Chrome. Took from 8:53 to 8:56 to start:
> rstasta@nixos ~ ✖ 08:53 google-chrome-stable
> DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
> libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed
> [45438:45567:0328/085316.209912:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
> [45438:45567:0328/085316.210106:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
> [45438:45567:0328/085316.210269:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
> INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
> [0328/085346.166359:ERROR:process_memory_range.cc(75)] read out of range
> [45624:1:0328/085346.174729:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45592:1:0328/085346.174745:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [45602:1:0328/085346.174750:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [45573:1:0328/085346.174785:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45515:1:0328/085346.174785:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45438:45438:0328/085346.179516:ERROR:gpu_process_host.cc(1002)] GPU process exited unexpectedly: exit_code=512
> DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
> libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed
> [0328/085416.326545:ERROR:process_memory_range.cc(75)] read out of range
> [45602:1:0328/085416.335899:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45592:1:0328/085416.335893:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [46015:1:0328/085416.336071:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [46015:11:0328/085416.336101:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [46287:1:0328/085416.336041:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [46015:12:0328/085416.336151:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [45916:1:0328/085416.336152:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45573:1:0328/085416.336175:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45438:45438:0328/085416.343776:ERROR:gpu_process_host.cc(1002)] GPU process exited unexpectedly: exit_code=512
> DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
> libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed
> [0328/085446.514799:ERROR:process_memory_range.cc(75)] read out of range
> [46015:12:0328/085446.523587:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [46015:11:0328/085446.523654:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [46826:1:0328/085446.523744:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45573:1:0328/085446.523765:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [46777:1:0328/085446.523763:ERROR:command_buffer_proxy_impl.cc(323)] GPU state invalid after WaitForGetOffsetInRange.
> [45438:45438:0328/085446.529200:ERROR:gpu_process_host.cc(1002)] GPU process exited unexpectedly: exit_code=512
> DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
> libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed
> [45557:7:0328/085446.656552:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [45592:13:0328/085446.656556:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [45916:13:0328/085446.656628:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [46287:12:0328/085446.656632:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [46015:11:0328/085446.657893:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [46777:12:0328/085446.659003:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
> [46826:13:0328/085446.659851:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
And journalctl is full of this:
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
bře 28 08:54:46 nixos kernel: [drm:__nv_drm_gem_nvkms_memory_prime_get_sg_table [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Cannot create sg_table for NvKmsKapiMemory 0x000000006bbffe6b
This is when I disable hardware acceleration in Chrome, then it starts instantly and not a single line in journalctl:
rstasta@nixos ~ ♥ 09:00 google-chrome-stable
DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed
[59923:60057:0328/090019.854002:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[59923:60057:0328/090019.854195:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[59923:60057:0328/090019.854370:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
[59970:59970:0328/090023.425488:ERROR:gles2_cmd_decoder_passthrough.cc(947)] ContextResult::kFatalFailure: fail_if_major_perf_caveat + swiftshader
[59970:59970:0328/090023.428037:ERROR:gles2_cmd_decoder_passthrough.cc(947)] ContextResult::kFatalFailure: fail_if_major_perf_caveat + swiftshader
[59970:59970:0328/090023.430123:ERROR:gles2_cmd_decoder_passthrough.cc(947)] ContextResult::kFatalFailure: fail_if_major_perf_caveat + swiftshader
rstasta@nixos ~ ♥ 09:25 glxgears
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
307 frames in 5.0 seconds = 61.201 FPS
284 frames in 5.0 seconds = 56.642 FPS
glxinfo -B:
rstasta@nixos ~ ♥ 09:27 glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 8192 MB
Total available memory: 8192 MB
Currently available dedicated video memory: 7900 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3070 Laptop GPU/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 550.67
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6.0 NVIDIA 550.67
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 550.67
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
What I think is notable is that your iGPU is enumerated before the dGPU in VK but not in OGL. That smells like something that could cause a conflict?
I’m not sure whether Chrome uses Vulkan in any way but I’d try forcing the nvidia VK device. VK likely has an env var for that or at least one to disable the Intel ICD.
Speaking of the iGPU, could you try running all of this on the iGPU without any dGPU involved?
Beyond that, I don’t think we can help any further as the issue is likely with the Nvidia driver. The NVK message appears to always be printed when drivers are enumerated.
Thanks for the hint. Can you please provide how to force nvidia VK device or how to run all on the iGPU? Or at least point me to where I can look for how to do it? Sorry, I am using nixos for about two weeks and I am still a learning noob
I have switched to zen kernel and it is slightly better. The errors are still there:
rstasta@nixos ~ ♥ 11:08 google-chrome-stable
DRM kernel driver 'nvidia-drm' in use. NVK requires nouveau.
[4562:4688:0330/110808.771270:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[4562:4688:0330/110808.771597:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[4562:4688:0330/110808.771901:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed
But at least it starts instantly, there are no nvidia errors in journalctl and I don’t need to wait three minutes
I found that mesa comes with a few vulkan ICDs by default, including the nouveau icd which vulkan is probably trying to load but failing since nouveau isn’t installed. You can limit things to only use the proprietary nvidia driver if you set VK_DRIVER_FILES=/run/opengl-driver/share/vulkan/icd.d/nvidia_icd.x86_64.json
Sadly no. The error is still there, but my problem was related to bug in Google Chrome itself, so this was false positive. Errors are sitll present but it seems it is not breaking anything for me, so I just live with it
Basically, simpledrm is loaded as a second “card”, and lots of applications attempt to render with it, which results in this confusing error. It’s probably down to kernel config, see issue for more details, but this is a workaround for now:
I have the same issue, tried to install obsidian but somehow fail when starting it, tried to launch it with the VK_DRIVER_FILES=/run/opengl-driver/share/vulkan/icd.d/nvidia_icd.x86_64.json variable environment but fail to start, I try adding :
but fails too, and what’s even weirder is that somehow obsidian rarely success to start, why? I don’t know I litterally changed nothing to my environment between the two start session, not even rebooting.
There’s some related issues(I think) I found :
I think the issue is only related to chrome based app
Awesome, would be cool if you can deny my suspicion, there can obviously be other things causing this.
Among those two issues neither has more info that would suggest it is or is not the same thing I saw. The former is using wayland, which would have the same symptoms, the latter has no info at all.
Could you check if you have two cards?
$ ls /dev/dri
by-path card0 card1 renderD128
Your nvidia driver version is also relevant, this was fixed in 545.23.06.
Also, just to be clear, if you change your kernel args you need to reboot for them to take effect.