ydirson / gl-streaming Goto Github PK
View Code? Open in Web Editor NEWThis project forked from khanhduytran0/android-gl-streaming
streaming opengl commands, for the benefit of virtual machines
License: BSD 3-Clause "New" or "Revised" License
This project forked from khanhduytran0/android-gl-streaming
streaming opengl commands, for the benefit of virtual machines
License: BSD 3-Clause "New" or "Revised" License
Hello, I just came across the Qubes Discourse post regarding this, and I wanted to provide input on my own efforts to achieve 3D acceleration in Qubes.
I am currently running 3D accelerated applications on Qubes by using a GPU passed directly to a VM running a separate X server and using VirtualGL to bridge the Qubes X server :0 and the new accelerated X server together, applications can be rendered via existing Qubes infrastructure with input and audio working correctly compared to other solutions described on the internet, albeit because qubes can't capture VM cursors some 3D camera systems do not function correctly. An issue was raised on the Qubes' issue tracker (QubesOS/qubes-issues#4986) but there hasn't been any meaningful activity on it.
VirtualGL also has an EGL implementation, but I could not get it to work Fedora 33 and Debian 10's Mesa is too old and is missing the EGL extensions required. I tested it on a custom Ubuntu TemplateVM and it worked, so I believe it will be viable in the future to not have to run a secondary X server, and be able to contact the GPU directly via EGL.
I believe it may be possible to use Qubes' RPC functions with qrexec to transfer graphics commands to a remote qube that holds a graphics device but I am not knowledgeable enough on the workings of it.
Another issue is that VirtualGL does not support Vulkan forwarding, and the developer appears to not be interested in implementing it at the moment due to complexity. Therefore it may be worth to explore alternatives that do, such as Google's gfxstream. It supports code forwarding over network sockets if I understand correctly, which could probably be leveraged easily via qrexec.
I am ultimately useless at providing a meaningful practical implementation, I have no formal programming experience and can only provide insight on a design proposal. It is interesting to see so much activity regarding this lately and I feel like it's the last dealbreaker of Qubes for many people.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.