Rust wgpu now has a
-
People who are making FPGA GPUs are usually hardware folks and usually interested in like, running a game or something. I'm not a hardware folk. But I'm familiar enough with 3D APIs and OS midlayers I could, with a lot of work, make a GPU that doesn't just run demos but connects all the way up to Linux or some other desktop OS. And then we've finally got the open source laptop entire stack bottom to top, motherboard cpu gpu libreboot linux.
Except then Linux went finally, undeniably corporate.
@mcc for completeness, i already had a PoC of this btw that i'm planning to revive https://mntre.com/media/reform_md/2022-09-29-rkx7-showcase.html
-
Servo rests atop wgpu. Therefore, if my OS's entire GUI layer is servo, and I believe that implementing webgpu is easier than implementing vulkan, I can increase my chances of writing a working video-acceleration driver if I simplify it so *the driver supplies wgpu*, instead of trying to support the full scope of DRI/DRM or OpenGL/Vulkan or whatever this entails.
Two things I want, in both cases wgpu provides a critical, project-saving step.
And oh, I think wgpu might be slop now. Never mind!
@mcc Mesa does make implementing Vulkan somewhat easier, I think in some of the same ways that just implementing webgpu directly would, in that a lot of the redundant API surface is provided by shared code. And in particular you probably want to use Mesa for the compiler framework it provides, something that would be a pretty big lift otherwise. I think it doesn't have a WGSL frontend but that doesn't seem like it would be too hard to write.
-
@mcc What's the smallest API and implementation necessary to accelerate a GUI so that it feels good? What's the minimum amount of hardware to support that acceleration?
Like, could you do 10% of WebGPU on top of CPU SIMD (or whatever) extensions to make the GUI not painful? This is well below the level I have ever worked at, so I won't be surprised if the answer is "no".
@sabrina Yes, exactly. This is exactly the question I am posing. But here is the hard part:
Imagine identifying the operations you need for a fast 2D desktop. Can you implement those operations in FPGA? Trivially. This would be a fun, fast project. *The software you want to run would not be written to use those operations*. Modern software is doing its 2D by sitting atop OpenGL or Vulkan. So the difficult part is *identifying parts of Vulkan and OpenGL* that in practice a 2D program uses.
-
Rust wgpu now has a .agents/skills, a .claude/skills, an AGENTS.md, and a CLAUDE.md.
Increasingly wondering if my goal of living in a way that I never benefit from the actions of generative AI users and generative AI users never benefit from the actions of me is going to inherently mean never using hardware-accelerated video on a computer again.
@mcc got bad news about the hardware itself
-
@mcc got bad news about the hardware itself
@rcombs For thoughts on hardware, see the entire rest of the thread. I could use a RISCV CPU implementation made before 2025, if only I could display a triangle.
-
@mcc Mesa does make implementing Vulkan somewhat easier, I think in some of the same ways that just implementing webgpu directly would, in that a lot of the redundant API surface is provided by shared code. And in particular you probably want to use Mesa for the compiler framework it provides, something that would be a pretty big lift otherwise. I think it doesn't have a WGSL frontend but that doesn't seem like it would be too hard to write.
@crzwdjk That's some good clear thinking, thank you.
I am not sure but I think the bridge-to-GPU layer in Linux goes through a middle step named "DRI" or "DRM", and I think Redox plans to adopt this wholesale. I don't know to what extent DRI/DRM is about just *configuring* displays and to what extent if you've implemented the DRI/DRM layer then Mesa just does the rest for free.
-
People who are making FPGA GPUs are usually hardware folks and usually interested in like, running a game or something. I'm not a hardware folk. But I'm familiar enough with 3D APIs and OS midlayers I could, with a lot of work, make a GPU that doesn't just run demos but connects all the way up to Linux or some other desktop OS. And then we've finally got the open source laptop entire stack bottom to top, motherboard cpu gpu libreboot linux.
Except then Linux went finally, undeniably corporate.
@mcc I was thinking of making a 2D GPU, it's something I might still take up one day if I end up with a lot of free time for whatever reason.
-
Rust wgpu now has a .agents/skills, a .claude/skills, an AGENTS.md, and a CLAUDE.md.
Increasingly wondering if my goal of living in a way that I never benefit from the actions of generative AI users and generative AI users never benefit from the actions of me is going to inherently mean never using hardware-accelerated video on a computer again.
@mcc In 2043 mcc creates the last truly slop-free, hardware-accelerated video game using Vulkan SC on a retired 737 Cockpit Display System. Worldwide only four systems remain capable of running the game as intended after the FAA and EASA finally embraced Generative AI and the population learned to accept the catastrophic loss of %0.018 of flights.
-
@mcc
Well, maybe not simultaneously, but I think you could do both if you wanted to.@brouhaha I don't know how many years I have and I don't know how many years I'm able, constitutionally, to go without reaching a goal. If doing A does not achieve my goal without B, can I actually get all the way to the end of A knowing that I've still got to do all of B when I'm done? What if writing both A and B takes so many years together that the definition of what you need for A and B to work shifts in the meantime?
-
@mcc (probably this requires never upgrading to any piece of hardware released past ~2024 or so)
@erincandescent My desktop is from 2016 and I see zero, literally zero, reason to upgrade it. There is no reason to use a piece of hardware released past 2024 except for the fact that eventually the pre-2024 hardware will wear out. Anyway the remainder of the thread is substantially about RISCV
-
@mcc Redox needs to be broken up a bit so we can do some mix-and-matching.
@khleedril A thing I have seen discussed in Redox space is running Linux in a VM so it can steal Linux's kernel modules.
-
@hyc Your first paragraph answers your second. It's not enough to make fast 2D blitting/compositing/blending. You have to do it in a way that can talk to the 3D APIs modern compositors and userspace software speaks.
@mcc Most of the software I want to use doesn't need a modern compositor.
But I'd love to see an accelerator API that you can use standalone, without having to build all of Xorg mesa first.
-
Servo rests atop wgpu. Therefore, if my OS's entire GUI layer is servo, and I believe that implementing webgpu is easier than implementing vulkan, I can increase my chances of writing a working video-acceleration driver if I simplify it so *the driver supplies wgpu*, instead of trying to support the full scope of DRI/DRM or OpenGL/Vulkan or whatever this entails.
Two things I want, in both cases wgpu provides a critical, project-saving step.
And oh, I think wgpu might be slop now. Never mind!
@mcc wgpu is a slightly simpler API to use, but I'm not sure I'd categorize it as easier to implement. Basically it means doing a whole bunch of extra work in the driver. Whereas vulkan itself has a bunch of shared implementation in e.g. Mesa, and a huge test suite, and also much of it is optional anyway.
-
People who are making FPGA GPUs are usually hardware folks and usually interested in like, running a game or something. I'm not a hardware folk. But I'm familiar enough with 3D APIs and OS midlayers I could, with a lot of work, make a GPU that doesn't just run demos but connects all the way up to Linux or some other desktop OS. And then we've finally got the open source laptop entire stack bottom to top, motherboard cpu gpu libreboot linux.
Except then Linux went finally, undeniably corporate.
@mcc instead of going with an fpga have you looked at some of the simpler GPU cores (like the powervr ones)?
-
@mcc I was thinking of making a 2D GPU, it's something I might still take up one day if I end up with a lot of free time for whatever reason.
@crzwdjk I think that would be a cool, rewarding project. I think you could drop it on MiSTER or Analogue Pocket and make a bit of a fantasy console out of it. I've been reading about the design of "PPU"s from 80s-90s video game consoles. Sprite engines and such. I wonder what one would look like that's more about implementing SDL2's general 2D compositing/blending/blitting layer rather than per se 2D "sprites".
-
Rust wgpu now has a .agents/skills, a .claude/skills, an AGENTS.md, and a CLAUDE.md.
Increasingly wondering if my goal of living in a way that I never benefit from the actions of generative AI users and generative AI users never benefit from the actions of me is going to inherently mean never using hardware-accelerated video on a computer again.
@mcc@mastodon.social this is most likely true, but even so, the firmware of your computer is being slop coded by random corporate engineers
I think to truly adhere to this you'd require open hardware and open software for that hardware which also isn't GenAI enabled
to be entirely honest I've been thinking about this a lot and I have no solutions -
Anyway, I spent the last week writing documentation for Redox. The Redox project seems to be happy for my documentation patches. One thimble full of water, out of the sinking boat.
Thank you for speaking about this. I don't have anything interesting or useful to add, but I appreciate not feeling alone in my desire to avoid slop.
I hope you're successful, no matter which route you ultimately take.
I'm also encouraged to learn that both Servo and RedoxOS aren't accepting LLM contributions. I've been frustrated that - what appears to be - so much of the Rust community including the core Rust language itself has embraced LLMs.
-
What I mean is, my daydream GPU was going to be designed to be good for the kinds of 2D acceleration you need to like, run a web browser, scroll a window, move a window around. Want to do anything 3D? It's slow or it kicks you back out to MESA software rendering. I just wanted a computer I can use in a day to day way that felt like it was mine and I owned it.
There are a few rudimentary open source GPUs, but none with this focus, and critically, *none I know that support Vulkan*.
@mcc I wonder the chip in some snes game would be suitable for such usage
-
@mcc wgpu is a slightly simpler API to use, but I'm not sure I'd categorize it as easier to implement. Basically it means doing a whole bunch of extra work in the driver. Whereas vulkan itself has a bunch of shared implementation in e.g. Mesa, and a huge test suite, and also much of it is optional anyway.
@dotstdy The problem I hit to begin with was that the open source community is no longer trustworthy and a well-known, well-understood, well-tested system may sometime after September 2025 have been compromised with "AI code assistant" slop. Can I be certain Mesa is not, itself, slopped? Can I be certain it will continue to not be slopped?
-
@mcc instead of going with an fpga have you looked at some of the simpler GPU cores (like the powervr ones)?
@mcc rockchip makes SoCs that are suitable to use in a laptop that have powervr cores