this post was submitted on 19 Jan 2025
20 points (81.2% liked)

Linux

49097 readers
793 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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

The card in question: Thames [Radeon HD 7550M/7570M/7650M] (Radeon HD 7570M) I am starting to face mounting issues as a lot of modern software have started to abandon OpenGL in favor of Vulkan, and if its possible, I just want to try for the learning opportunity

top 18 comments
sorted by: hot top controversial new old
[–] [email protected] 22 points 1 day ago (2 children)

The rationale for doing this must only be for fun. You're talking about a project that will take man years, and the price of a new vulkan capable graphics card is $300-400.

[–] [email protected] 4 points 1 day ago

You don't need to spend that much to get a vulkan-capable GPU.

[–] [email protected] 1 points 1 day ago (2 children)

the price of a new vulkan capable graphics card is $300-400

Do you think I would have any motivation to embark on such a ( admittedly Useless)project if i had that kind of money lying around to spend on a GPU.

[–] [email protected] 17 points 1 day ago (1 children)

The time it will take you to learn the required skills to build a GPU driver and then the implementation will likely be several years—maybe half a decade.

[–] [email protected] 2 points 1 day ago (1 children)

Fair enough, I just want to keep my Hardware running, do i have any options(besides getting new hardware).

[–] [email protected] 4 points 1 day ago* (last edited 1 day ago)

Looking at the Product Conformance pages, it looks like you need a GCN 1.0 device for Vulkan 1.0 support (current is 1.4).

Thames was a Terrascale 2 architecture (i.e. the one before GCN1.0) and as such can't support Vulkan or DX12.

[–] piccolo 5 points 1 day ago (1 children)

You can get a modern card capable of vulkan for like $30 off ebay.

[–] Jumuta 1 points 1 day ago

my entire laptop is cheaper than that and mostly supports vulkan

[–] [email protected] 18 points 1 day ago (1 children)

Hey man, I don’t want to discourage you, but this is one of those things where if you have to ask how to do something you’re probably not experienced enough to do it. That being said, as a learning opportunity even if you don’t make it far you’ll still learn a lot about how GPUs work.

I’d start by looking at any existing drivers you can find and see if you can document or find documentation for the commands fed to the GPU. From there you can look at the Mesa project for examples of converting Vulkan to instructions for specific processors and see if you can get it to all fit together for your project.

[–] [email protected] 1 points 1 day ago (1 children)

I am willing to begin from scratch, any proper resources you can point me to? l

[–] [email protected] 4 points 1 day ago* (last edited 1 day ago)

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.

[–] [email protected] 8 points 1 day ago

Someone started working on a Vulkan driver for TeraScale GPUs a few years ago:

https://gitlab.freedesktop.org/Triang3l/mesa/-/tree/Terakan

I believe it can run some demos add even works on windows.

[–] [email protected] 5 points 1 day ago

That is a tall order, shorter perhaps than writing an opengl driver

Vulkan is incredibly verbose and well documented, have you looked at the spec?

[–] [email protected] 1 points 1 day ago (2 children)
[–] [email protected] 7 points 1 day ago

That's the other way around. It's an OpenGL driver that uses Vulkan under the hood. OP would need the opposite to have Vulkan on his card, but I don't think it's possible given that Vulkan is a lower-level API compared to OpenGL.

[–] [email protected] 2 points 1 day ago (1 children)

that looks like something opposite to what i want Vulkan -> OpenGl, instead of something like OpenGl -> Vulkan

[–] [email protected] 0 points 1 day ago

I found this, apparently "Triang3l" a Xenia emu dev, developed the Vulkan Terakan driver which adds support for HD 7 series. Last commit was in 2023 apparently. I couldn't find anything else yet.

https://gitlab.freedesktop.org/Triang3l/mesa/-/commits/dcc26f1df0b464c5bc1a5a5992edd9607381bb4f