Wait, does this mean I can use any spare tablet, laptop or smart TV as second monitor for, say M1 running Asahi? Wonder what's the performance for non-game usage?
Many environments also include native virtual display support so you don't even always need a special VNC server. On Linux projects like that tend to just automate it but sometimes it's pretty easily to do manually. E.g. on Sway you just define the virtual display the exact same manner as you do a physical display and then VNC in to only that display. On other operating systems like if it was running native macOS projects tend to do more of the heavy lifting around making the virtual displays actually happen.
I've used this to let friends on IRC paint on my LED shelf (https://github.com/eikehein/hyelicht), which has a Qt-based embedded and phone app GUI, over the internet. Cheap fun!
I think Qt's is "better", in that GTK's just streams pixel data to a HTML canvas. Looks like Qt actually streams the WebGL drawing commands to the browser, which does the rendering itself. Certainly that's still not super fast, as the drawing commands are sent over a socket, vs. directly to the GPU's GL driver... but presumably more performant than rendering in the app (even if using the GPU to do so), and then copying the pixel data into network buffers.
Either way, it's a cool feature in both toolkits. (Not trying to belittle GTK here.)
AFAIU for 'heavy' 3D applications like AAA games the BW over the PCIe bus to the GPU can be a lot higher than what comes out of the cable to the screen. So just sending (compressed) pixels is not necessarily a bad remoting strategy.
Though for something simple like just rendering GUI widgets the opposite may very well be true.
I remember when Alex Larsson announced this as a POC. I tried it out, it was pretty neat and worked well. I was always sad it kind of languished or didn't get any attention after that.
So I'm curious, is it back with a vengeance? Are people working on this?
I'd be interested to know this too but I'm not hopeful. I imagine it's up here because it was mentioned in the discussion on the New renderers for GTK[0] post a couple of days ago.
replying to myself. Nope, because broadway doesn't support OpenGL apparently:
* (epiphany:13774): WARNING *: 12:18:59.172: Disabled hardware acceleration because GTK failed to initialize GL: The current backend does not support OpenGL.
It says "using HTML5 and web sockets."
Does this mean the application freezes if the connection to server is disrupted?
Could developers use this to make web-based apps along-side desktop clients? If so , Desktop frameworks like GTK and Qt should focus on this idea more to reclaim the desktop from the monstrosity that is Electron.
I'm not sure how this could reclaim the desktop from Electron. If anything, this gives Electron developers another option by running a local server in the app and rendering it in Electron.
31 comments
[ 2.8 ms ] story [ 73.5 ms ] threadOn that, I found https://github.com/kbumsik/VirtScreen
Now there's a quote for the ages.
https://alnvdl.github.io/2023/11/18/a-cloud-based-vs-code-wo...
https://doc.qt.io/qt-5/webgl.html
I've used this to let friends on IRC paint on my LED shelf (https://github.com/eikehein/hyelicht), which has a Qt-based embedded and phone app GUI, over the internet. Cheap fun!
Either way, it's a cool feature in both toolkits. (Not trying to belittle GTK here.)
Though for something simple like just rendering GUI widgets the opposite may very well be true.
So I'm curious, is it back with a vengeance? Are people working on this?
See here from 2010: https://blogs.gnome.org/alexl/2010/11/23/gtk3-vs-html5/ More here in GTK4: https://blogs.gnome.org/alexl/2019/03/29/broadway-adventures...
[0]: https://news.ycombinator.com/item?id=39172377
It might be bugged and change the sent resolution when you do this though. (based on my limited experience with x11 forwarding)
* (epiphany:13774): WARNING *: 12:18:59.172: Disabled hardware acceleration because GTK failed to initialize GL: The current backend does not support OpenGL.
Could developers use this to make web-based apps along-side desktop clients? If so , Desktop frameworks like GTK and Qt should focus on this idea more to reclaim the desktop from the monstrosity that is Electron.