reaganry can you replicate your success with the Pi in desktop linux? why/why not do you think?
alright, so:
Pi graphics stack is very unique, so unfortunately can't be reproduced on a conventional PC.
BUT, I've actually made my first progress towards strain-free PC Linux very recently. There is a long way to go before this is actually a reliable option, but I've found something that very likely contains the key we're looking for (at least for unaccelerated Intel graphics). Interestingly, I don't think the problem is dithering… What now needs to be done is to find the exact steps to reproduce it.
here's the details.
Pi graphics
reproducing what the Pi 1 can do directly isn't really possible, since it uses an entirely unconventional graphics stack and GPU (broadcom VideoCore, which splits the GPU into 2 separate components, one that provides OpenGL acceleration which can be disabled, and one called "hardware video scaler" that scales the framebuffer to fit the screen and applies optional antialiasing -- this HVS can also either be run in "online scaling" accelerated or "offline" unaccelerated mode, where the offline mode is noticeably more comfortable.)
what's really interesting about the Pi 1 (mine is Model B, early revision with "©2011"-only copyright date) is that my current setup on it is actually -EVEN better- in comfort for me by a significant amount, compared to the typically-well-regarded older Windows versions like 1511 or 8.1 (at least when it's connected to a known-good monitor like Sharp LC-G5C26U).
using this setup actually made me notice an oversharpening/edge-enhancement-like effect Windows seems to add in addition, at the OS level, on top of whatever the graphics card does, that I didn't catch before -- even on older Windows versions with Basic Display Driver on older graphics like HD Graphics 4000!! -- and this is not present on the Pi 1.
(I was VNCing from the Pi into the same Windows PC I previously tried with the same monitor, so I noticed this by directly comparing what "should be" the same Windows app interfaces/text rendering/color schemes -- but they appeared visibly different and more comfortable to me through the Pi's output.)
what's also unique is how much customization is possible, it is very easy to do things like ignore the EDID entirely (which is what i'm doing, since my Sharp display stubbornly doesn't expose it's native 1366x768 DVI mode in its default EDID but supports it otherwise), force a custom EDID, disable the scaling filter to get "crisp" 200% scaled resolutions, custom resolutions or timings, etc.
note that the latest versions of Pi OS have switched to yet another graphics driver called "kernel mode setting" which initalizes the VideoCore chip in a very different way, seems less comfortable, and doesn't provide the extensive customization of the older driver at all! Fortunately Raspberry Pi still maintains a "legacy compatible" variant of the OS, which maintains the original "dispmanx firmware driver" which is what I'm using.
-
My first ever progress towards strain-free Linux on PCs
however, in terms of my progress on Linux, I actually do have a significant lead for standard PCs. recently I was trying a bunch of distros. although 90% of them caused strain even in non-GPU-accelerated mode, i eventually stumbled across something very different.
there's this obscure, very minimal distro that runs of a USB I found called 4MLinux. very barebones, has a GUI but doesn't even have any package manager or UEFI boot support. (it seems to be someone's personal distro.)
although i'm certainly not recommending using this obscure OS, there is something -VERY- unique about it presents the most significant progress I think we've made for Linux strain yet (at least on Intel Graphics)
at boot you choose between Intel driver or VESA driver. Intel driver has tons of strain, did not like using that mode at all, worse than Windows.
BUT in the VESA mode, I literally achieved the most comfortable strain-free image I've EVER seen on my AUO TN laptop panel (which was already a "decent enough" screen I could be productive on, but this feels a whole new level).
Managed to coax RealVNC into running off this OS's live USB and it felt SO calm, very different than the Basic Display Adapter Windows output I'm used to on the laptop). Very comparable to the Pi 1's output, even though it's on a UHD 620 PC with an eDP panel.
Interestingly it still has spatial dithering (same as Windows on this laptop, both OSes don't use temporal on this hardware) but the difference is still apparent, better than Windows with or without spatial dithering. IMO this rules out dithering as my main issue!
So this got me thinking, is it JUST the VESA driver that's the key? Actually, NO… I tried another Linux distro that offers a basic VESA driver at boot (CrunchBang++). Although it was better than some Linux distros, I actually still got strain. The image felt different and a lot harsher compared to whatever 4MLinux is doing.
So, I actually have a real, concrete goal for the first time. Figure out how to precisely set up a mainstream & reliable distro that offers a barebones option -- like Debian or Arch -- to load the exact same graphics stack 4M is using. And get it to look the exact same as 4M with VESA for me on my laptop panel.
Although this arguably won't have graphics acceleration, if I succeed in doing this, it might be the first time we ever make substantial progress here towards a strain-free option for Linux (AKA good enough for "very sensitive" users who currently don't like using Linux at all).
I will start experimenting with this when I'm more free later this month. If I make any progress towards this, I will definitely post about it