2021: Year of the Linux Gaming Desktop - Andrew Kelley
Zig SHOWTIME2 HN recommenders · 2021–2024
15K views · talk · evergreen · Uploaded 2021-02-19
Andrew Kelley's Zig SHOWTIME talk on an experiment to ship static Linux executables that can do graphics and gaming, followed by an interview. It covers the problems of Linux binary stability, dynamic linking and the graphics ABI.
HN cites it in threads on Linux desktop application distribution as a clear treatment of why binary compatibility and static linking are hard.
47:18The Tragedy of systemd
linux.conf.au
1:12:27CppCon 2015: Andrei Alexandrescu “std::allocator...”
CppCon
51:18Lexical Scanning in Go - Rob Pike
GoogleFOSSSydney
1:04:04Overwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
59:34CppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”
CppCon
45:35The Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)
Mladen Mijatov
42:30RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
1:10:00A Deep Dive into Nanite Virtualized Geometry
SIGGRAPH Advances in Real-Time Rendering
5 comments from Hacker News
Andrew Kelley makes an interesting point in: [VIDEO] about the PT_INTERP being hard-coded. That seems like a long ago assumption baked that binaries should only have one program interpreter per system. I don't know enough about configuring a system and the historical decisions around PT_INTERP, but I suspect Andrew is on to something.
related: this talk that I made 2 years ago about an experiment to ship static executables on linux that could do graphics: [VIDEO]
That mesa issue reminded me of wayland issue thats been open for 3 years now where apps crash if theres even a slight stall due to the wayland socket becoming full. Instead of providing quick fix for actual app devs and users who are affected most, they have been designing this perfect solution for apps and compositor to agree on the socket size for 3 years now. Its similar crap with the server size decorations where they finally had to admit people want them and merged the protocol but don't implement it in gnome compositor :) I'd say wayland really was barebones when it was being pushed and major contributions to actually get it usable on desktop was from outsiders. I'd say win32/flatpak/libretro are the only sane way for games to target linux right now. The fact that linux doesn't have real "runtime" and major components required by games link against libc is what makes linux really unstable for anything that needs to open window, draw stuff using GPU and play audio. It's possible to create static binaries for linux that work for eternity, thanks to kernel being actually stable. But link against something in /usr/lib and it all goes to hell. If the GPU drivers and libs that provided basic window / audio did not depend on libc and were standalone, the situation would be much better. Here's good video about this problem space btw [VIDEO]
My interest is not in using this text editor as a consumer, but in guiding software development culture in general, particularly when it comes to installation of Linux applications. Some talks I have given on this topic: [VIDEO] [LINK] So, I think "entitled" is the wrong insult. "arrogant" would be more accurate.
> Linux is not an operating system It is though. Go ahead and find me any distribution of Linux on which this binary of the Zig compiler does not work: [LINK] You can't, because it's a static executable whose only runtime dependencies are a file system. And if kernel devs would bless us with a stable graphics ABI, then we could do this for games, too. Unfortunately, the way drivers work currently relies on dynamic linking in a way that drags in a dependency on differences in distributions, which is completely unnecessary and maddening. Related: [VIDEO] P.S. Just bought my wife a steam deck for christmas and she loves it.