prasanthrangan / hyprdots

// Aesthetic, dynamic and minimal dots for Arch hyprland
GNU General Public License v3.0
5.56k stars 677 forks source link

[Feature Request]: Linux Kernel & AMD Proper Drivers to Install Script #761

Open Somnius opened 5 months ago

Somnius commented 5 months ago

Feature Request

Description

The only thing that is missing is the script to choose amd vulkan/mesa/pro drivers instead of the default "amd" opensource one, and what linux kernel the user prefers.

Use Case

To be able to have options on choosing a different kernel and better amd gfx drivers

kRHYME7 commented 5 months ago

can we have the markdown for this driver's links to the archwiki? Is this as simple as installing a single package? The owner might not have Amd (I guess) so more info would be perfect. If it is easy to like just install a single package I might write it so we can Push a Request. Thanks!

Here's the info of some users with their hardware configurations. https://github.com/prasanthrangan/hyprdots/discussions/116

marc-hg commented 4 months ago

this pls

hchasens commented 4 months ago

I'm fine manually installing them. It'd be nice if I knew for sure that Nvidia drivers weren't installed by default. I took it quick look through the scripts and it seems like it checks to see if the Nvidia module is loaded first, so it should be fine. But being told in the documentation that if we're using AMD, Nvidia drivers won't be force loaded would be great.

kRHYME7 commented 4 months ago

A PR from AMD Users will be much appreciated 🎶. I think the owner is not using Amd.

hchasens commented 4 months ago

Can confirm Nvidia packages are dropped if you're running AMD.

kRHYME7 commented 4 months ago

A PR for documentation will be much appreciated.❤️

hchasens commented 4 months ago

I might be able to put something in the docks this weekend or early next week. I'm sorry but my schedule is packed. I'll make a calendar event for it though. Ping me again by Wednesday if I forget. I might be able to add Vulkan, Mesa, and some other things to the script. I think the pro drivers have a TOS but it might be worth adding if we can flash the TOS first. We might also want to consider adding ROCm HIP as well as they have their own OpenCL implementation.

Going to be blunt though, AMDs open source drivers are very good (better than may of their pro drivers). It's not comparable to Nvidia at all. Mesa and non-pro Vulkin are fine for most things imo. I'd like to include ROMc HIP just for feature parity with Nvidia's CUDA.

IMO the driver list should be something like:

mesa (OpenGL)
vulkan-radeon (or amdvlk) (Vulkan)
libva-mesa-driver (and maybe mesa-vdpau) (encode-decode)

rocm-hip-runtime (HIP Binaries)
hip-runtime-amd (HIP drivers)
rocm-opencl-runtime (OpenCL)

Supporting all AMD GPUs is obviously impossible so I suggest supporting a modern subset, probably between Radeon 200 (2013) and Rx 7000 (modern). I'm not sure what FirePro support will look like but Radeon Pro should work fine. The Vega series also has some strange quirks which I won't have the time to iron out.

prasanthrangan commented 4 months ago

Hey, I don't have an amd system, but will try to implement this if someone could share the packages required for amd gpu and its corresponding supported gpu list. but mesa opensource driver should be installed during minimal arch installation.

local/lib32-mesa 1:23.3.5-1
    An open-source implementation of the OpenGL specification (32-bit)
local/mesa 1:23.3.5-1
    An open-source implementation of the OpenGL specification
hchasens commented 4 months ago

My understanding is that mesa is not installed by default on Arch. They may be installed via the archinstall script or by a desktop environment, but to my knowledge it's not in base.

Edit: It is a dep for wlroots though. It might be good to just add it independently none the less just so it's not tied as a dep.

hchasens commented 4 months ago

The driver list might look like

mesa
lib32-mesa

vulkan-radeon
lib32-vulkan-radeon

libva-mesa-driver
lib32-libva-mesa-driver
mesa-vdpau
lib32-mesa-vdpau

rocm-hip-runtime
hip-runtime-amd
rocm-opencl-runtime

and should support Radeon 300 series and later (~2014). If they're running hardware from before that, it's the same driver list, but they'd need to set some kernel parameters.

opticblu commented 4 months ago

The driver list might look like

mesa
lib32-mesa

vulkan-radeon
lib32-vulkan-radeon

libva-mesa-driver
lib32-libva-mesa-driver
mesa-vdpau
lib32-mesa-vdpau

rocm-hip-runtime
hip-runtime-amd
rocm-opencl-runtime

and should support Radeon 300 series and later (~2014). If they're running hardware from before that, it's the same driver list, but they'd need to set some kernel parameters.

Adding 5gb of ROCm runtimes is not necessary, nor the special OpenMP/ROCm LLVM dependencies. Then someone would also have to sort out the environment variables based on which generation GPU... and... just, no.

99% of people won't need any of this (edit: the AMD GPU compute libraries/ROCm). These are dotfiles for hyprland, not a hyprland+parallel computing dev environment. People who need ROCm support can and should install it. For everyone else it's a waste of 5GB.

kRHYME7 commented 4 months ago

I am concerned that we might face more issues. Considering whether we really need to add this. I mean, is it vital for the system to boot or for Hyprland to display, for example, the ENVS required to be set up for some NVIDIA device? While I fully support adding this as an optional part, possibly as an optional post-install script?

opticblu commented 4 months ago

I am concerned that we might face more issues. Considering whether we really need to add this. I mean, is it vital for the system to boot or for Hyprland to display, for example, the ENVS required to be set up for some NVIDIA device? While I fully support adding this as an optional part, possibly as an optional post-install script?

If someone can install arch, they can install Vulkan, or whatever other libraries that have nothing to do with Hyprland, that they want to install.

I don’t honestly even understand the nature of this “issue” or —as it’s tagged— “enhancement”

Switching my kernel isn’t an enhancement, it’s a dangerous nuisance.

The AMD “driver” on Arch is— literally mesa— which is itself a dependency of Hyprland to begin with.

Hyprdots team is so incredibly nice, IMO: to try to accommodate everyone’s unrelated-to-literally-the-scope-of-this-project is just going to create complications that will cause WAY more issues than they will “solve.”

hchasens commented 4 months ago

You could argue that the Nvidia drivers aren't' necessary either. I agree that as a dot file repo, it's out of scope for the project, but since Nvidia proprietary drivers have already been added I don't see why AMD should be left out. (unless Nouveau doesn't work for some reason) Imo Hyprdots has moved slightly past just a dot file repo. Imo it's turning into a polished DE which uses hyprland as it's base. Unless you're on Nix I don't know any dotfile repo that installs as many packages as this.

I agree that ROCM is unnecessary. I apologies, I forgot about the large package size.

mesa
lib32-mesa

vulkan-radeon
lib32-vulkan-radeon

libva-mesa-driver
lib32-libva-mesa-driver
mesa-vdpau
lib32-mesa-vdpau

Would be the driver list without ROCM.

While mesa is a dependency of Hyprland it won't do any harm to add it; while adding support should Hyprland remove it as a dependency for whatever reason. Vulkan drivers are important for AMD cards, and the libva/vdpau packages are important for trans-coding and aren't in any of the packages previously.

I'm not trying to make hyprdots something that it's not; but only have feature parity with Nvidia users. Unfortunately Cuda parity won't be possible without ROCm, which is why I initially added it, but if it's such a large package then I agree that it's best left out.