this post was submitted on 19 Jan 2025
27 points (84.6% liked)
Linux
49417 readers
1688 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I am willing to begin from scratch, any proper resources you can point me to? l
Yeah, so the best beginner resource (especially for old hardware) is honestly this old blog series A Trip Through the Graphics Pipeline. But importantly, it was written before modern dx12/vulkan were around, so it will use dx9 terminogy. Also, it's possible that certain aspects of the vulkan api aren't possible to faithfully implement to spec with older hardware (while still maintaining reasonable performance, or possibly at all).
From there, it's probably best to try and implement a backend for your GPU into the radv mesa driver, so probably go take a look at how other GPUs are done.
You will need to become familiar with the AMD GPU programming docs, here.
I'm not going to be one of the naysayers here who says you shouldn't even try to do this, but as an ex-graphics driver dev, I think you will find pretty quickly that you have your work cut out for you. It would probably be easier to implement a Vulkan-on-OGL translation layer.
Both GPU hardware and drivers are developed by teams of professionals, each of which is hyper specialized in a few components, because none have the time or ability to be familiar with everything about all components (at least, not while also being effective). I'm not saying you can't do it, and I'm not saying you wouldn't learn a LOT doing it, but I am saying that by the time you finish, you could have worked a minimum wage job and purchased a dozen 5090s 😉.
Edit: and oh right, then there's reading through the Vulkan spec, which, if it's your first graphics API, will take months, if not years to digest.