I switched over to using FreeBSD as my main desktop around 1 month ago.
Last night I had enough of some core issues I was having and ended up
switching back to Linux. My 2-year-old graphics card, an AMD RX 5700XT,
does not work with the current stable release 12.2, so I had no choice
but to use -CURRENT, ALPHA-2 then BETA-1.
My setup is minimal; I don't use any GUI applications apart from the
rare occasion I need to use a browser; I do use mpv often. Even with
this setup, there was a performance issue that caused Xorg to micro
stutter, causing a system pause for around 1 second.
When using just a console things seemed to work fine, so my first
thought was the problem must lie with Xorg. Over a few days I tried
tweaking various Xorg options such as Tearfree, SWCursor, etc. This made
zero improvement, my next port of call was the AMDGPU driver, drm-kmod.
AMDGPU, A trip to the GitHub project page for this project did indeed
show 4 out of 17 issues open are for the exact model of graphics card
I have. Though none of the issues seemed related to the problem I was
having.
During my research, though, I also found posts on /r/freebsd and the
official FreeBSD forums with similar issues, Sadly, none of them had any
actual solutions. I decided to build the kernel module from the latest
git master, this seemed to improve the stuttering, progress!
Around this time I also found out that -CURRENT, -ALPHA and -BETA builds
have a lot of debugging enabled in the kernel by default, which can
cause degraded system performance.
I found GENERIC-NODEBUG kernel config; I stripped out a lot of modules
I wouldn't need to help the build times. This was so simple to do, and
before I knew it I had a custom kernel built with all debugging removed.
Booting into the new kernel I noticed an improvement right away.
Playing a video still caused a little stuttering, as long as I did
little else. I was happy with this for the time being, thinking that
maybe when BETA-1 or RC came around things would be better.
Woo-hoo, BETA-1 snapshot was released, time to give it a whirl. BAM,
right back to square one. So I went through the same steps again with
building the AMDGPU module from git and building a custom kernel with no
debugging enabled.
The same day as BETA-1 released, I got a reply on one post I made about
the issue. Just run this, the poster says, All processes are tied to the
first CCX0. This will reduce the usable cores to 4, however.
No way this can be the solution, can it? Well yes it was, suddenly I had
nearly ZERO issues. All the lag had disappeared! The only cost? I had
to gimp the potential of my system.
At this point I had enough, I spent so long on such a trivial matter
I decided just to go back to Linux until 13.0 is released, then I will
revisit it. I liked FreeBSD. There is so much to it that I loved and
would go back in a heartbeat if I could get my hardware working without
having to jump over so many hurdles.
* I love ports
* I had set up Bhyve running Poudriere building my own packages.
* Setting up the GPU driver was really simple (if it worked on my card)
* Audio setup was such a breeze.
* I had no issue installing ports/packages I needed, pkg is a wonderful tool.
* Jails are so handy, I didn't think I would need them but man they are
great!