New blogpost! This time we're fixing VRAM memory management for VRAM-constrained GPUs, especially for 8GB VRAM and lower!

I've been working on this for a while, and it's finally in a state where others can try! If you run into issues where game performance ends up degrading over time due to your GPU running out of VRAM, this should provide a really noticeable improvement.

https://pixelcluster.github.io/VRAM-Mgmt-fixed/

Fixing AMDGPU's VRAM management for low-end GPUs | pixelcluster's GPU blog

@pixelcluster hey, just found this. By reading the post i get the impression this is (or could be) a "VRAM priority" model where you can assign priorities to different processes for their VRAM residency. Say i do some VRAM heavy thing in the background but also want to play a light game, so i want to have game +2, bgtask +1, all else 0. Ignoring the gnarly details, could this be used to write an app like amdgpu_top that lets you pick an process and put it in a "ultra/high/normal" priority group?
@badsector This approach intentionally doesn't use any numerical priorities, for quite a few reasons. cgroups pose a more elegant/flexible solution here, but require more intricate setup. Something like what you said would (theoretically) be possible by setting up cgroup hierarchy in a certain tree-like way. Generally, cgroups higher up that tree would be prioritized over cgroups further down in the tree, but this kind of setup allows you to do many different prioritization models, as well.
@badsector That is to say, if you wanted to write an app that lets you pick a process and choose a priority for it, that's possible but that app would also require cgroup hierarchies to be set up a certain way. I'm not completely sure if systemd is flexible enough for something like that, but that's probably the area you'd need to start working on first.
@pixelcluster i used numbers because of the limited text size, main idea is basically to set (in some way) at runtime that "process xyz should be at ultra priority, process abc should be at high priority, other processes are normal/default", etc. I guess it is fine for cgroups to be predefined (could be an install instruction), AFAICT the requirement is mainly to be able to assign the processes at runtime. I'll need to look into cgroups more though, never had an incentive about them before :-P