-
-
Notifications
You must be signed in to change notification settings - Fork 569
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebGL not working for Nvidia Google Chrome 112.x #279
Comments
Previous tag, |
Thank you |
I fixed current google chrome version, new tag |
From the issue its clear, that this won't be worked on:
Therefore marking as |
I know Chrome has soome issues in its GPU pipelines. A few times I reported breaking changes that stalled the video (that was copied to canvas) after they changed the code. The PM on the chromium issue was not the best person to interact with. They will fix it when one of their apps get affected or some user gets screwed and stays on top of them till they fix it. The developers usually try their best but the browser has become super complicated in terms of the code. Btw, I'm using Edge now, and the decorations removal works, but the file download is a bit tricky since it selects its own Downloads folder and user has to pick the meko location. Is Edge affected by this, too? Could you please link to the issue? |
Its linked earlier in this issue, here is the link again: VirtualGL/virtualgl#229 If the change comes from Chromium then as soon as Edge and Brave update to this version, they won't work as well. But maybe it is only google chrome, hard for me to say. |
Ok, there is also this: https://github.com/Xpra-org/xpra |
I realized you might be using virtualgl to run the apps on the gpu inside docker, not for what I was thinking. Have you considered using NVIDIA Docker? |
It uses nvidia docker. This topic is fairly complex. You can read about it more here: https://github.com/selkies-project/docker-nvidia-egl-desktop that project was used as a base for EGL implementation in Neko. |
The topic may be complex but the issue we have here is not: we have a faulty dependency whose author does not want to fix and I take it that it means we lose hardware acceleration via GPU, on all Chromium browsrers, and that would be a major regression. In theory, can the faulty dependency be replaced? If so, what are the options? |
I completely understand the author, that they invested lots of their own time and resources to fix this issue once and in less than a month google basically completly broke it again. But I don't know about alternative. |
Reading this makes me really sad. So what are the options:
|
You're absolutely right. I'm sorry my tone came out wrong. I just add that this regression in Chrome coincided with Chrome making WebGPU supported without flags. I wonder if it happened in the same set of commit and whether there is some reason there to do with WebGPU support. I don't know much about the GL internals. I'm just a WebGL user, and GPU support is important not only for accelerated rendering but for running WebGL/WebGPU code. |
Any way to run neko right now outside of Docker with WebGL/WebGPU support but without VirtualGL? |
@m1k1o Hey, first thanks for this interesting project. Really great to have something like that. I am no Chrome expert but I know low level rendering in depth. I have trouble understanding why VGL is required in the Docker context. NVIDIA provides egl Images that work fine. Is vgl used for something else? My goal is the run Chrome with webgpu Support (so Vulkan is critical for me, which is also weil supported by NVIDIA). So just curious and keen to learn about the issues. |
@chrisprobst I am as well no chrome or GPU expert, I used this repo as an inspiration: https://github.com/selkies-project/docker-nvidia-egl-desktop If you would be able to get it working (maybe somehow without VGL), that would be really great! |
Hi. I maintain the above container. The reason VirtualGL is used is that OpenGL has two main types of interfaces to paint to the screen; EGL and GLX. VirtualGL was used in the past to offload 3D OpenGL GLX acceleration to an Xorg server with loaded GPU drivers from another X11 server without 3D acceleration, typically virtual X11 servers without GPU acceleration like Xvnc or Xvfb (GLX to GLX). While you are right that EGL is passed into the container through EGLStreams ( GLX, in principle, requires an X11 server. What most people used to do is to pass https://github.com/selkies-project/docker-nvidia-egl-desktop and https://github.com/selkies-project/docker-nvidia-glx-desktop are two different kinds of solutions to enable GLX inside isolated containers; one uses the EGL to GLX translator introduced newly in VirtualGL 3.0, allowing virtual X servers to support GLX through EGL without an X11 server loaded with NVIDIA drivers, and the other adds required NVIDIA driver libraries inside the containers and uses workarounds to run a full Xorg server inside a container. So, to answer your question, VirtualGL exists to support GLX without a full Xorg server, and you are correct that you may directly use EGL instead of GLX for Chrome through ANGLE. Thus, VirtualGL doesn't have to be a strict requirement. Vulkan is supported without additional intervention as long as There is, however, no reliable open-source way to transport raw Vulkan commands over the network to different hosts, which was what VirtualGL was meant to do for GLX. |
@m1k1o @ehfd Thank you very much for these detailed background information. I had to read it multiple times, I think I got it now. This EGL GLX distinction was indeed new to me. This explains the use of VGL previously and also suggests that Chrome (angle on egl) might work without it. I believe there is even angle = Vulkan nowadays which makes me believe that maybe even egl might not be necessary. I'll dig a bit in the next weeks. When I find something I'll let you know. Luckily, it overlaps a bit with my day work currently so I might be able to spend some time on it during work. Cheers! |
Thanks for your interest in this problem. It seems that provisioning /dev/shm is pretty important as well. |
@ehfd Thanks! I will take this into account. I believe you can disable shm use on Chrome Linux but maybe it has bad side effects, so I try to enable it. I might also reach out here if I hit walls |
Google do not store pre-112 versions on the cloud anymore. So the latest build is with latest chrome, therefore not working. Afaik it's still not fixed. |
Can't use WebGL in Nvidia container using Google Chrome
The text was updated successfully, but these errors were encountered: