Referring to
https://github.com/VirtualGL/virtualgl/issues/229#issuecomment-1948999166,
I have spent a great deal of unpaid labor trying to figure out how to
make VirtualGL work with Chrome's ANGLE back ends, since --use-gl=egl
(which bypasses ANGLE) crashes since Chrome v112. (It crashes even
without VirtualGL.) That resulted in some nasty hacks to make VirtualGL
work with Chrome/ANGLE. Unfortunately, those nasty hacks do not change
the situation with Firestorm (which also appears to use ANGLE.)
Firestorm appears to be complaining in the same way that Chrome
complains when you don't pass --disable-seccomp-filter-sandbox to it.
That makes me suspect that the issues may be related to GPU sandboxing,
which is problematic with VirtualGL because VGL does some things (such
as calling X11 functions) that GPU sandboxes consider to be security
risks. As a side note, one possible long-term solution to that would be
to move the VGL Faker's transport thread into another process and either
transmit rendered frames to it via shared memory or pass a PBO handle to
it and let it do deferred readback (see
https://github.com/VirtualGL/virtualgl/issues/9). That wouldn't address
the other issues with ANGLE or Chrome, but it would at least make
VirtualGL more sandbox-friendly.
At the moment, there's nothing more I can do to diagnose or fix the
problem without funding. If application developers care about remote
display, then I'm happy to have a dialogue with them, but VirtualGL
exists primarily because application developers (not to mention Linux
graphics system developers) don't care much about remote display. Here
I am 20 years later still trying to hack my way around that lack of
foresight, and it's becoming increasingly difficult to do so. Various
new features in Linux applications or Linux itself have thwarted
VirtualGL or TurboVNC in recent years, with seemingly no workarounds. I
don't know what else I can reasonably do. VirtualGL has a limited
general fund that pays for maintenance, but it has received no funded
development since 2022. That funded development was in fact to figure
out a method to use Chrome with VirtualGL, which resulted in the EGL/X11
interposer in VGL 3.1.x. That method worked fine until Google broke it
in Chrome v112, thus causing me to spend 50 or 60 unpaid hours trying in
vain to unbreak it. I am more than happy to work with application
developers to resolve compatibility issues with VirtualGL, but I can't
spend my free time (with emphasis on "free") trying to make VirtualGL
work with complicated applications whose developers don't care about
VirtualGL.
Sorry for the rant. I am not ranting specifically at you. I'm more
screaming into the void regarding the sub-optimal state of Linux remote
display in general. VirtualGL was always a hack, and I never expected it
to still be necessary in 2024. I expected the Linux community to
recognize the value of remote display and figure out a better way to do
it. Wayland may eventually prove to be that better way, but at the
moment it has its own issues that are non-starters for our project (not
the least of which is failure to converge around a common compositor
implementation, i.e. it doesn't have an equivalent of Xorg.) Meanwhile,
some companies have decided that it's easier to port their entire suite
of applications to Windows than it is to deal with Linux remote
display. I'll never understand why IBM/Red Hat and other major
enterprise Linux players aren't investing more R&D money into this
problem. The value proposition of remote display for large enterprises
is well-proven at this point. Our plucky little project has saved
companies millions of dollars in workstation refresh costs and
additional millions per year in ongoing IT costs. Yet the course of
Linux development, as a whole, seems to be making it more difficult to
do what we do and failing to provide viable alternatives. This is an
open invitation to any enterprise Linux/systems/GPU company to have a
conversation with me about possible future directions for Linux remote
display and what needs to happen (IMHO) to make it viable (or at least
as good as the current state of the art on Windows.)
DRC