It's unfortunate because my desktop eats up about 110W when idle, and approximately 0W when suspended. I also use some sketchy successor to "barrier" to share my mouse and keyboard with my work laptop, and that somehow keeps my monitors from shutting off if I happen to leave the mouse cursor on the laptop's screen. That's another 100W according to my UPS.
There are undoubtedly dozens of power plants that exist purely due to the overall number of software bugs that exist. They're talking about banning natural gas in favor of electrical heating here in California, and I live in a chillier climate, so I must be saving the Earth by leaving my desktop powered on most of the time out of convenience.
I found a very strange one... Had the same issue. Switching to tty and then back to GUI would work fine so, to me, it wasn't that much of an issue. I used that workaround for months. Then one day I decided to look into it: switched the HDMI cable for a DisplayPort cable and the problem is now gone! If I put the HDMI cable back on, the issue happens again. It may or may not help some people having similar issues with their desktops.
I need to change my desk configuration in a few months, and it's going to get a lot simpler since I am going to separate out my work setup. At that point I won't be able to justify keeping the desktop powered on 24/7, so working suspend would be a major quality of life improvement. I'll keep that in mind, and try to avoid HDMI completely.
On the other hand, why wouldn't this likely be an AMDGPU driver issue? I suppose I should try booting into Windows and suspending from there, just to see if it's reliable. I could also try backing off my fclk frequency, and disable resizeable BAR for the laughs. I could even go as far as swapping my older Nvidia GPU back in and see if that suspends and resumes ok. I'm expecting a new born baby this week, so it's not like I have anything better to do!
I don't like producing e-waste, but if I conclusively knew it was a systemic Gigabyte issue, I would seriously consider switching to a new motherboard from another vendor. I built this desktop after being in the hospital ICU for 5 days, and promised myself I wouldn't spare any expense. I also expect it to last the next decade, and so I don't want to be annoyed by it long term...
Would you be able to share the details of your script? Or does it simply switch to a virtual terminal before suspending, then switch back after resuming?
Regarding e-waste. Not sure where you live, but we have Freecycle and a Facebook "Buy nothing" group that my wife uses. They let us find a home for tons of stuff we otherwise would have had to throw out.
[Unit]
Description=Switches to a TTY before suspending
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c 'fgconsole >
/tmp/fix_resume_active_console'
ExecStart=/usr/bin/chvt 1
ExecStop=/bin/bash -c '/usr/bin/chvt $(cat
/tmp/fix_resume_active_console)'
[Install]
WantedBy=sleep.targetMy Zen3 system with a 6700XT suspends fine on PopOS