Earlier quoted context omitted.
I wonder why we even bother trying to support these hardware vendors sometimes. I have been trying really hard to simply not deal with them for my own sanity. Are we not simply letting the leash out further for what we will accept and buy? Are we truly that powerless against the market forces which drive HW/OS sales?
Currently probably because M1 is absurdly better than the competition. They will certainly draw users away from Linux unless either this porting effort gets done, or unless other ARM options that support Linux better become available.
So even if you could get all the hardware drivers working properly, Linux/Gnome still will lose out to macOS because that hardware simply wasn't designed for that software, and that software simply wasn't designed for that hardware, while macOS and M1 were both designed to work together.
But Gnome was originally designed to run on X-Windows, whose hardware model is a MicroVAX framebuffer on acid.
https://donhopkins.medium.com/the-x-windows-disaster-128d398...
The color situation is a total flying circus. The X approach to device independence is to treat everything like a MicroVAX framebuffer on acid. A truly portable X application is required to act like the persistent customer in Monty Python’s “Cheese Shop” sketch, or a grail seeker in “Monty Python and the Holy Grail.” Even the simplest applications must answer many difficult questions:
WHAT IS YOUR DISPLAY?
display = XOpenDisplay("unix:0");
WHAT IS YOUR ROOT? root = RootWindow(display, DefaultScreen(display));
AND WHAT IS YOUR WINDOW? win = XCreateSimpleWindow(display, root, 0, 0, 256, 256, 1,
BlackPixel(
display,
DefaultScreen(display)),
WhitePixel(
display,
DefaultScreen(display)));
OH ALL RIGHT, YOU CAN GO ON. (the next client tries to connect to the server)
WHAT IS YOUR DISPLAY? display = XOpenDisplay("unix:0");
WHAT IS YOUR COLORMAP? cmap = DefaultColormap(display, DefaultScreen(display));
AND WHAT IS YOUR FAVORITE COLOR? favorite_color = 0; /* Black. */
/* Whoops! No, I mean: */
favorite_color = BlackPixel(display, DefaultScreen(display));
/* AAAYYYYEEEEE!! */
(client dumps core & falls into the chasm)
WHAT IS YOUR DISPLAY? display = XOpenDisplay("unix:0");
WHAT IS YOUR VISUAL? struct XVisualInfo vinfo;
if (XMatchVisualInfo(display, DefaultScreen(display),
8, PseudoColor, &vinfo) != 0)
visual = vinfo.visual;
AND WHAT IS THE NET SPEED VELOCITY OF AN XConfigureWindow REQUEST? /* Is that a SubstructureRedirectMask or a ResizeRedirectMask? */
WHAT??! HOW AM I SUPPOSED TO KNOW THAT? AAAAUUUGGGHHH!!!! (server dumps core & falls into the chasm)