Well, I figured it out. To make a long story short, my GPU was not getting enough power and was being throttled. If interested read the story below. Hybrid mode does appear to have a minor performance hit but it’s negligible at only 1-2fps and statistically not important.
After a lot of google searches I found some tools to assist:
Corectrl
amdgpu-clock
Gallium Hud
GOverlay
After installing Corectrl and running Unigine I noticed that my GPU never reached the max frequency and it along with the voltage levels were bouncing around all over the place never reaching a steady state. So, checking the tools available under advanced performance mode, I found that the power limit was only set to half of max. I set that to max and wouldn’t you know it? That was pretty much all I had to do, the GPU reached it’s final state with a steady max frequency with only minor fluctuations in voltage.
For most people experiencing poor performance this is most likely all they’ll need to check.
However, for those a bit more adventurous here’s some additional knowledge. If interested in tweaking each clock state/level for max performance or better performance per watt you’ll want to unlock your GPU controls:
sudo micro /etc/modprobe.d/amdgpu.conf
options amdgpu ppfeaturemask=0xffffffff
If you get stuttering with this flag enabled try ppfeaturemask=0xfffd7fff depending on your gpu some people have better luck with one than the other.
Once you saved and closed that file regenerate your initial ramdisk and reboot
sudo mkinitcpio -P
Or instead of -P (all presets) specify the specific preset you want
You should now be able to view your current clock levels
cat /sys/class/drm/card0/device/pp_od_clk_voltage
If that works, you can check the Arch Wiki on how to edit with echo commands. However, I found the the amdgpu-clock tool to be quick and easy and would recommend it instead. The corectrl program is supposed to be able to adjust your clocks but I couldn’t get it to work for that. Your mileage may vary. I did use corectrl to set a custom fan curve however and that works wonderfully.
Be careful here, make small changes. Also, more isn’t always better. You can sometimes actually get better performance by under-clocking or under-volting due to the chipset throttling itself. Especially if it starts getting too hot and you don’t have adequate cooling. Even if it runs without crashing you can see the fluctuations in your stats/graphs. Slow is smooth. Smooth is fast.
Finally, you may find Gallium Hud and GOverlay to be useful as well, especially if you only have a single monitor and your benchmarking with full screen. They provide an onscreen overlay for monitoring performance.