Making my move to Garuda - What's the state of AMD hardware acceleration?

Hello,

I have searched and searched but have been unable to find a definitive answer, so I am asking: what is the state of AMD hardware acceleration on Garuda?

I am looking for a new home. I currently run Manjaro, but as a Radeon user I have been caught up in the recent fracas over hardware acceleration. To get it today on Manjaro requires you to run the unstable branch, which doesn’t fit my use case.

So, does AMD acceleration “just work” on Garuda, or are there limitations? Is there extra setup to get it running?

What is the use case for HW Acceleration you are concerned about? Something like H.264 encode/decode? Or stuff like gaming?

Have you looked at these:

AMD HW Video Acceleration in Arch

AMD GPU s in Arch

Garuda is based on Arch, so the Arch Wiki applies to much of what the OS offers.

2 Likes

I am looking for va-api via Mesa.

But I am being more specific. Because of the changes to certain export laws in the US it’s recently become difficult for distributions from the US to publish AMD hardware acceleration in Mesa. I am neither a lawyer or coder, so I don’t understand the specifics.

The upshot has been that Manjaro (also based on Arch) suddenly can’t publish accelerated codecs for the likes of VLC and OBS.

For example, on my current Manjaro system I run vainfo and I get:

vainfo
Trying display: wayland
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Mesa Gallium driver 23.3.3-manjaro1.1 for AMD Radeon RX 6700 XT (radeonsi, navi22, LLVM 16.0.6, DRM 3.54, 6.6.10-1-MANJARO)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc

Which is a much shorter list of methods than my hardware and software should support. This is because of recent changes to Mesa to strip out some code because of the changed export laws (again, I am no expert and don’t know the specifics).

The insane solution on Manjaro is to include an external repo Manjaro don’t maintain, which requires you run the unstable branch of Manjaro.

Does Garuda include a more complete Mesa implementation, or will I be stuck running its unstable branch to get acceleration, too? Or, is Garuda immune to this insanity?

If this helps you, on my system:

vainfo
Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Mesa Gallium driver 23.3.3-arch1.1 for AMD Radeon RX 7900 XTX (radeonsi, navi31, LLVM 16.0.6, DRM 3.56, 6.7.0-zen3-1-zen)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileNone : VAEntrypointVideoProc

but are YOU in the us. that is why i haven’t posted mine, i am in the us and have similar output

In Canada… Good point. I ain’t no lawyer either but I have to assume it ain’t affecting me…

OK, so as expected people within the unlimited US export zone are not impacted.

Can I get a vainfo result from someone in Asia-Pac or Europe with Garuda?

Out of curiosity, does it matter where the user is? The mirrors should all contain the same files.

1 Like

It makes a difference on Manjaro what Mesa you get. So I would expect it to matter here, too.

I don’t think so. Manjaro appears to have removed support from the package.

On the other hand, Arch still has it in:

1 Like

Complete guess, but maybe Manjaro does this so that they can sell their laptops in the US without being in violation of US regulations. Garuda is not US based, and we have no intentions of selling hardware with Garuda pre-installed on it. Therefore, I would expect US laws in this respect would likely not impact our distro.

10 Likes

europe:

Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Mesa Gallium driver 23.3.3-arch1.1 for AMD Radeon RX 7900 XT (radeonsi, navi31, LLVM 16.0.6, DRM 3.56, 6.7.0-zen3-1-zen)
vainfo: Supported profile and entrypoints
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main               : VAEntrypointVLD
VAProfileH264Main               : VAEntrypointEncSlice
VAProfileH264High               : VAEntrypointVLD
VAProfileH264High               : VAEntrypointEncSlice
VAProfileHEVCMain               : VAEntrypointVLD
VAProfileHEVCMain               : VAEntrypointEncSlice
VAProfileHEVCMain10             : VAEntrypointVLD
VAProfileHEVCMain10             : VAEntrypointEncSlice
VAProfileJPEGBaseline           : VAEntrypointVLD
VAProfileVP9Profile0            : VAEntrypointVLD
VAProfileVP9Profile2            : VAEntrypointVLD
VAProfileAV1Profile0            : VAEntrypointVLD
VAProfileAV1Profile0            : VAEntrypointEncSlice
VAProfileNone                   : VAEntrypointVideoProc
1 Like

Looks like this issue affects Manjaro users in the US too. I still have an AMD laptop with Manjaro installed (which I used before switching over to Garuda).

Here’s my vainfo output on Manjaro. It looks the same as yours, other than missing the entry for AV1, which the laptop doesn’t support. It looks like the issue is still happening, even though I’m based in the US.

Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Mesa Gallium driver 23.3.3-manjaro1.1 for AMD Radeon Vega 10 Graphics (radeonsi, raven, LLVM 16.0.6, DRM 3.52, 6.4.16-5-MANJARO)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
                                                                   

Here’s my output on Garuda:

Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Mesa Gallium driver 23.3.3-arch1.1 for AMD Radeon RX 6700 XT (radeonsi, navi22, LLVM 16.0.6, DRM 3.56, 6.7.0-zen3-1-zen)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple            : VAEntrypointVLD
VAProfileMPEG2Main              : VAEntrypointVLD
VAProfileVC1Simple              : VAEntrypointVLD
VAProfileVC1Main                : VAEntrypointVLD
VAProfileVC1Advanced            : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main               : VAEntrypointVLD
VAProfileH264Main               : VAEntrypointEncSlice
VAProfileH264High               : VAEntrypointVLD
VAProfileH264High               : VAEntrypointEncSlice
VAProfileHEVCMain               : VAEntrypointVLD
VAProfileHEVCMain               : VAEntrypointEncSlice
VAProfileHEVCMain10             : VAEntrypointVLD
VAProfileHEVCMain10             : VAEntrypointEncSlice
VAProfileJPEGBaseline           : VAEntrypointVLD
VAProfileVP9Profile0            : VAEntrypointVLD
VAProfileVP9Profile2            : VAEntrypointVLD
VAProfileAV1Profile0            : VAEntrypointVLD
VAProfileNone                   : VAEntrypointVideoProc

Either way, I highly recommend the switch to Garuda from Manjaro. I made the switch about a year ago. Since then, it’s been more stable, given me better performance, and it just looks way better.

2 Likes

I’ve been meaning to install Garuda on that laptop anyways, so I just decided to go for it. After installing Garuda on the same laptop, this is my output for vainfo.

Trying display: wayland
Trying display: x11
vainfo: VA-API version: 1.20 (libva 2.20.1)
vainfo: Driver version: Mesa Gallium driver 23.3.3-arch1.1 for AMD Radeon Vega 10 Graphics (radeonsi, raven, LLVM 16.0.6, DRM 3.56, 6.7.0-zen3-1-zen)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple            : VAEntrypointVLD
VAProfileMPEG2Main              : VAEntrypointVLD
VAProfileVC1Simple              : VAEntrypointVLD
VAProfileVC1Main                : VAEntrypointVLD
VAProfileVC1Advanced            : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main               : VAEntrypointVLD
VAProfileH264Main               : VAEntrypointEncSlice
VAProfileH264High               : VAEntrypointVLD
VAProfileH264High               : VAEntrypointEncSlice
VAProfileHEVCMain               : VAEntrypointVLD
VAProfileHEVCMain               : VAEntrypointEncSlice
VAProfileHEVCMain10             : VAEntrypointVLD
VAProfileJPEGBaseline           : VAEntrypointVLD
VAProfileVP9Profile0            : VAEntrypointVLD
VAProfileVP9Profile2            : VAEntrypointVLD
VAProfileNone                   : VAEntrypointVideoProc

Hopefully this helps. Looks like there’s lots more things supported here on Gaurda. I also made sure everything was fully up to date first, since this seems like a pretty recent change in Manjaro.

1 Like

Thanks for taking the time to run these tests, they were very helpful!

I had been initially led to believe the restriction was due to US export law, but the more I read the more it proved to be about patent fearmongering.

As I understand it, the H.264 and H.265 standards (both ratified standards from the ISO/ITU organisations) include compression algorithms covered by patents, however the patent owners agreed to RAND/FRAND (Reasonable and non-discriminatory licensing - Wikipedia) exceptions to those patents.

The upshot is that you can write an open source implementation of HEVC and include those patented methods without fear of legal reprisal. However, in the intervening time Google have created a set of compression methods without the patents altogether, and this is where the fearmongering starts: now that there are two standards competing, the one without the patents is being touted as the better option because it comes without the chance of a patent lawsuit to challenge how far RAND/FRAND protection goes. I call it fearmongering because there has never been an actual legal challenge to RAND in the past that should concern anyone.

I get really suspicious when I read articles about Google making ICs for their servers that do AV1 compression at very low cost that Google have not released for use outside of Google, giving Google a clear advantage.

All that being said, AV1 is obviously a better option going forward, but… AV1 compression is new and is only really efficient on the very latest GPUs. Older GPUs have very efficient HEVC hardware, and that’s the hardware I have, so I don’t really care about what’s good for the future, I care about the fact that I could do something on my Manjaro machine a year ago that I can’t do today because Manjaro decided to arbitrarily inflict this on their users.

I am glad that Garuda have not chosen that (very frustrating) path, and I look forward to moving over ASAP.

1 Like

We try to ensure that our members refrain from being critical of other distros on the Garuda forum. Their internal policy decisions are their own to make. Garuda choses its own path and tries to be non-judgemental of other distros within the Linux ecosphere.

3 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.