Remix.run Logo
sylware a day ago

On and off, I am currently coding a minimal wayland compositor for linux and AMD GPU(no libdrm), in RISC-V assembly (64bits), which I run on x86_64 with a small RISC-V machine code interpreter written itself in x86_64 assembly. I do not use ELF, but a file format (excrutiatingly simple as such file format type should be on modern hardware architectures) of my own with an ELF capsule (also written in x86_64 assembly).

I start with SHM memory, will add linux dma-buf once SHM is enough up and running. Currenty monothreaded, ofc. AMD GPU code for SHM is in, now writting wayland protocol code to please the first wayland clients I would like to run (not using the C libraries provided by the wayland project, native wire format).

I want to move away from x11, and once I get something decent with this compositor, I will probably have to fork xwayland in order to make it work with this minimal compositor, that for some level of legacy compatibility (steam client/some games).

In the end, I did design some kind of methodology and coded some SDK tools in order to write a bit more comfortably RISC-V machine code programs in a very simple fire format (only core ISA, not even compressed instructions, no pseudo instructions, using only a simple C preprocessor).

Coding time does not matter on such software in the light of their life cycle once it does "happen".

All that presuming not too much IRL interference... yeah, I know this is excessive to expect that...

The super hard part is not coding, it is motivation: energy, mood, cognitive bias, etc.