Closed AllanElleuch closed 3 years ago
The first thing I would try is downgrading the driver. I know that Chrome works with VirtualGL and earlier nVidia drivers, because I've tested it personally. I have not tested it with 460.xx yet, however. I'll try to test it this week.
Hi,
So I downgraded to 450.xx but this didn't changed my situation. I tried with chromium and it was then successful!
Thank you very much
did you have hardware acceleration enabled in chrome?
@AllanElleuch Please do not close an issue until I have had a chance to triage it. Just because you were able to work around it by using a different package doesn't mean that the issue is fixed.
Sorry, let me bring more information for this issue then.
@karlkleinpaste yes, I had the hardware acceleration enabled in chrome.
I performed a reboot and performed the following commands :
poop@poop-MS-7C02:~$ echo $DISPLAY
:1
Doesn't work
poop@poop-MS-7C02:~$ vglrun google-chrome
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[16251:16251:0423/231812.949415:ERROR:gpu_init.cc(426)] Passthrough is not supported, GL is egl
Doesn't work
poop@poop-MS-7C02:~$ vglrun -d :1 google-chrome
[VGL] ERROR: in VirtualWin--
[VGL] 76: Could not clone X display connection
[16402:1:0423/231822.309815:ERROR:command_buffer_proxy_impl.cc(121)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[VGL] ERROR: in VirtualWin--
[VGL] 76: Could not clone X display connection
[VGL] ERROR: in VirtualWin--
[VGL] 76: Could not clone X display connection
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[16606:16606:0423/231822.709677:ERROR:gpu_init.cc(426)] Passthrough is not supported, GL is egl
[16495:1:0423/231822.775110:ERROR:command_buffer_proxy_impl.cc(121)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[16402:7:0423/231822.756076:ERROR:command_buffer_proxy_impl.cc(121)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[16535:1:0423/231822.943372:ERROR:command_buffer_proxy_impl.cc(121)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[16523:1:0423/231825.809439:ERROR:command_buffer_proxy_impl.cc(121)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
Work
poop@poop-MS-7C02:~$ vglrun -d :1 google-chrome --disable-gpu-sandbox
[16665:16665:0423/231834.526824:ERROR:page_load_metrics_update_dispatcher.cc(170)] Invalid first_paint 0.383 s for first_image_paint 0.368 s
[16665:16665:0423/231835.632342:ERROR:page_load_metrics_update_dispatcher.cc(170)] Invalid first_paint 0.383 s for first_image_paint 0.368 s
poop@poop-MS-7C02:~$
When I wrote the last post I didn't use --disable-gpu-sandbox, I tried many commands so I don't know which one was helpful.
Which version of Chrome? --disable-gpu-sandbox
was necessary with older versions of Chrome, but I didn't think it was necessary with newer versions. I guess it may still be necessary under certain circumstances.
@AllanElleuch I think you may be misunderstanding the purpose of vglrun -d
. You should never pass the value of $DISPLAY
to vglrun -d
. What you are doing in that case is telling VirtualGL to use the 2D X server's OpenGL implementation, which is presumably either unaccelerated or remote from the point of view of the application server, to perform OpenGL rendering. Thus, vglrun -d :1 google-chrome --disable-gpu-sandbox
may have appeared to work, but it either wasn't really GPU-accelerated or it wasn't using server-side rendering, so it wasn't a valid VirtualGL configuration.
Ultimately, I was unable to reproduce this issue. I tried the latest Chrome package from Google (90.0.4430.93) with a clean install of VirtualGL 2.6.5. vglrun /usr/bin/google-chrome
produced a lot of LD_PRELOAD
warnings (refer to https://cdn.rawgit.com/VirtualGL/virtualgl/2.6.5/doc/index.html#hd0012 if you want to get rid of those), but it ultimately worked fine and showed the same GPU acceleration status that you reported in https://github.com/VirtualGL/virtualgl/issues/165#issuecomment-825095769, without the need to pass --disable-gpu-sandbox
. I tried both v450.xx and v460.xx of the nVidia drivers. I can only test on CentOS 7, not Ubuntu, so I'm not sure if that's in any way responsible for the difference in observed behavior.
I have observed that some systems do require --disable-gpu-sandbox
with recent Chrome releases, but I can't document that phenomenon until I can identify the exact cause.
For anyone stumbling upon this issue, https://github.com/VirtualGL/virtualgl/issues/228#issuecomment-1458759288 describes the results of my testing with the latest Chrome/Chromium releases using VirtualGL 3.0.2 and 3.1 post-beta. tl;dr: VirtualGL 3.1 (which is currently in beta) and EGL/X11 are necessary in order to enable GPU acceleration with any recent versions of Chrome/Chromium, and you must use the exact application recipe listed in the VirtualGL 3.1 User's Guide.
Hi,
I am trying to run google chrome with hardware acceleration but when I run the browser I have driver error at startup and I can only access software acceleration.
I use Nvidia proprietary drivers NVIDIA 460.56 on ubuntu 20.04. I have installed the latest 2.6.5 virtualgl.
Any idea how to make it work?
library errors
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
Chrome gpu status :
logs
chrome gpu report
vglrun +v google-chrome from host
vglrun +tr google-chrome from host
/opt/VirtualGL/bin/glxinfo -display :0 -c from host
vglrun glxinfo -display :0 from host