(disclosure, i did have to use by my standards scary levels of clanker/LLMs, but also, i wasnt going to read all of amdgpus source code myself and wouldnt otherwise have the needed level of skill for this lol)
This is actually pretty neat
thanks! i probably will put the source for this on github soonish:tm:, but i do want to clean it up a bit first; not entirely sure how high the chance is though that someone out there has this same apu in something and wants to run haiku on it though lol
also it does need a patched mesa since it needs a custom winsys for radeonsi
I didn’t think anyone was using my HaikuMC, it’s literally outdated. I literally dream of making a new port of MultiMC or PolyMC later because it’s newer, and if I choose PolyMC, it will have more features, but driver is interesting
oh, uhhh
well, the thing that is running with the name “HaikuMC” is something i wrote for this, guess ill change the name lol
No problem, I think this name is very easy to come up with =)
electrodeyt Can you tell us more about this driver—how it was developed, what it uses, and what it supports?
its a accelerant driver that provides modesetting and acceleration for the radeon r3e in the thin client i was testing this on. its built out of tree, both in part because i absolutely used a bit of llm help with this as i am not that great at graphics development (and took one look at the amdgpu driver and decided i wasnt going to torture myself by studying it, lol, blame amd for not having proper docs), and because this thin client is really, really slow and i didnt want to build haiku on it
it supports literally just this thing. i did my best to try and write it in a way that adding more things to it should be possible, but aside from me having helped on managarms lil intel driver, i dont really have too much experience with this kinda stuff, so no idea how well i actually did on that. quite a few parts of the code are so embarrassingly horrible that i shudder from the thoughts of putting it on the internet with my name attached, but hey, it works lol
i think adding support for other GCN2 / GFX7 APUs shouldn’t be that hard, although i dont have access to any of them
mesa needed some changes as well, to connect it to the driver, i did think about using the amdgpu drm stuff but this was the path of least resistance
minecraft surprisingly enough basically just worked, after making glfw not use osmesa lol
as for how it was developed, as i said, there was some llm usage involved. generally speaking, i dont personally like using llms for projects i actually care about, although i have personally few issues using them for debugging things, but at the same time, i really, really didnt want to spend eons looking at the amdgpu source code, lol
i had already written some things for this kinda stuff, stuff such as my atombios interpreter a while ago (which surprisingly enough only had a couple of bugs in it considering this is the first time im aware of that that interpreter was used on actual hardware, still need to push the fixes for that though)
how useful that will be in the future, i dont know, newer cards have been using atombios a lot less afaik
Which llm did you use? And after each bad iteration, were you able to recover to desktop without rebooting?
Its interesting to observe LLM drivers getting HW acceleration on Haiku (out of tree). If its on github, them more people can use it to get their own HW working.
The internet needs to segregate GPL, proprietary and MIT/BSD code so LLM can cleanly extract metadata from appropriate sources … Too late for that …
For a personal project, LLM made me a 3d building prefab modular mesh assembly gui tool and importer/exporter in like 2 hours. In the old days, that would be a 4 week project.
in general i was using 5.6 sol, i will say though that a vibecoder so to say wouldnt get this far; i had to do some pretty substantial cleanup to get the code anywhere close to, like, decent, and even when i was being lazy and letting it debug some issue on its own, i had to do a lot of prodding it in the right direction. someone who doesnt have a at least basic understanding of how a GPU works and how the GPU stack works would struggle with this
if i had to take a guess, when i cleaned it up enough that im happy to put it on github (since i dont want to post anything even close to purely vibecoded slop, especially since my github has my name on it lol), it would likely have taken longer than it would have taken someone who had the actual amd documentation less time to make this than i spent doing this. if you cant tell i am slightly annoyed that amd doesnt have actual register docs or docs on how to bring up the various parts of the gpu or how to drive the display engine, but oh well
The question is if nVidia documentation is any better than that. I assume it’s even harder there but I never looked at either documentation at all.
the only nvidia docs im aware of are made by the community, but more likely one would be porting nvidia-open, which has been done before, both by peeps in the haiku community and by projects such as managarm
WRT minecraft launchers, I ported Prism Launcher a while ago if anyone wants to test it https://markdownpastebin.com/?id=b56a998ae11a46f5b22c33091e724c9a

