Didn't think it was the mod, just included what exactly I used for completeness sake. Maybe in the future onyx does something about the CPU load and then me mentioning I used the original App could be confusing for people googling about it. I'm surprised and not surprised at the same time. On one hand, I am pretty sure there's nothing custom about Onyx HDMI port and the SoC has hardware support for HDMI input, what surprises me here is that it seems to be relatively inefficient. On the other hand it really isn't as we have a lot of pixels to handle and there's no hint for the tablet in HDMI if a specific pixel changed or not, it's not how HDMI works. Still wondering if Onyx really did use all hardware capabilities of the SoC here, no idea though
x11vnc is relatively clever about what screen regions got changed and what not, it uses the XDAMAGE extension in the xserver which is exactly for that. x11vnc also can implement a client-side cache of sorts by transmitting a larger picture to the client in which it buffers screen regions client-side in an offscreen region below the actual desktop. This is a lot faster than re-transmitting for the client on one hand, on the other hand it's sadly also kinda awkard as you can scroll down and see that region. There's no real support for caching like this in the protocol, so this is kind of a hack.
tigervnc "vncserver script" (and it's also just a perl script, it uses xvnc) also uses all inherent xvnc advantages. (xvnc is basically an X server that only has a virtual screen that exists in memory) I sometimes play full-blown videogames via WINE and xvnc&VirtualGL on my desktop. They run on another, beefier computer in my network which isn't even in the same room as me and appear in a window just as if they would run locally. Unix xvnc stuff isn't comparable to the vnc stuff for windows. Since xvnc runs a full-blown xserver, you can do fun things like run one window manager on one xserver, and a different one on the other, e.g. run Openbox for the tablet and herbstluftwm or i3 on your main screen. Via VirtualGL the second vnc x server can still access the hardware of the graphics card in the first server. (..or of a different card, you can do stuff like use graphics card A for the X session that's used by the guy sitting at the computer, and graphics card B for somebody remote-ing in, fun stuff - this is also fully independent on whatever is connected [or not, you can also turn off all outputs and save a few watts] to the card screen-wise so you can set up virtual screens of arbitrary size)
There is some overhead but it's low. People give X a lot of crap but it's actually pretty good and most of all, it's written with networking in mind. Granted, networking before the time of the modern security nightmare we all live in, but still.
bVNC gets a bit more efficient in a low-latency connection if you enable it's hextile compression, as it's a very low compression level and doesn't weight down the CPU on both sides as much. I'm not sure if it does jpeg compression as it doesn't mention it anywhere but turning that off would probably help too. If you are in a wired connection (like the USB connection is) you basically want to do little compression. (but not so little that everything gets bogged down by the sheer amount of data, there is a balance you want to find) Limiting frame rates also works. If everything is set up correctly, together with VirtualGL it should be possible to play videos on the Max 2 via mpv for example.
Honestly though, this stuff usually works best in normal 2D workloads, like normal desktop work stuff. When it comes to games where you often change the entire screen content lots of times a second, stuff can get slow above 1080p on not-too-fast CPUs like the ones in the Max 2. It's probably better to use the HDMI port then, as it doesn't seem to be affected by how much change in the screen there is.
EDIT: sorry for that wall of text everyone but X can be seriously cool and I like spreading the word, lots of people are not aware of the capabilities it has.
Last edited by elementarythree; 12-09-2018 at 03:10 AM.
|