The following happens on my MacBook Pro 16", macOS Catalina 10.15.1. I have two active user accounts which may be logged on simultaneously. If two users are logged on, I observe a split-second freeze of the screen exactly every 1 minute. This is very annoying when watching videos, but actually observable during any actions, e.g. window dragging or typing text. The issue is visible when logged in as any of those two users.
This only happens when two users are logged on. If only one user is logged on, everything works fine.
By analyzing the console logs, I came to a conclusion this has something to do with the integrated/discrete GPU. The console (filtered by "AGC::") shows the following routine happening at 00 seconds of every minute: first "PEG start powerup" message (a short half-second screen freeze happens at this point), then approx. 7 seconds later the "PEG start powerdown" message.
I'm not sure if this is a normal process, but this powerup/powerdown happens once every minute and seems to be directly related to the freeze.
05:44:00.128704+0100 kernel AGC:: [WindowServer pid:225] force EG up last PID 225 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:0 power-state 6 3D busy HDA idle system-state 1 power-level 20:20 power-retry 0:0 connect-change 0
05:44:00.128756+0100 kernel AGC:: [WindowServer pid:225] force EG up last PID 225 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:0 power-state 6 3D busy HDA idle system-state 1 power-level 20:20 power-retry 0:0 connect-change 0
05:44:00.329108+0100 kernel AGC:: :::::::> PEG start powerup [0m 53.144s downtime]
05:44:00.825109+0100 kernel AGC:: PEG0 WillPowerOn, 3, AGC path 1 trace 3
05:44:00.825165+0100 kernel AGC:: PEG0 HasPoweredOn, 3, AGC path 1 trace 7
05:44:00.825177+0100 kernel AGC:: PEG0 HasPoweredOn vendorID 0x19018086 address2 0x30100 nextID 0x14781002 retryID 0x0 retryCount 0:0
05:44:00.825195+0100 kernel AGC:: EGP0 WillPowerOn vendorID 0x14781002 address2 0x0
05:44:00.825268+0100 kernel AGC:: EGP0 HasPoweredOn vendorID 0x14781002 address2 0x30201 g3dID 0x0 hdaID 0x0
05:44:00.825283+0100 kernel AGC:: EGP1 WillPowerOn vendorID 0x14791002 address2 0x0
05:44:00.825356+0100 kernel AGC:: EGP1 HasPoweredOn vendorID 0x14791002 address2 0x30302 g3dID 0x73401002 hdaID 0xab381002
05:44:00.825375+0100 kernel AGC:: GFX0 WillPowerOn vendorID 0x73401002 address2 0xc
05:44:00.825432+0100 kernel AGC:: GFX0 HasPoweredOn vendorID 0x73401002 address2 0x1000000c g3dID 0x73401002 hdaID 0xab381002
05:44:00.825449+0100 kernel AGC:: HDAU WillPowerOn vendorID 0xab381002 address2 0x0
05:44:00.825505+0100 kernel AGC:: HDAU HasPoweredOn vendorID 0xab381002 address2 0x0 g3dID 0x73401002 hdaID 0xab381002
05:44:01.057209+0100 kernel AGC:: *******> PEG powerup took: 0.728s
05:44:02.057777+0100 kernel AGC:: [WindowServer pid:225] force EG up last PID 225 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:1f power-state 0 3D busy HDA idle system-state 1 power-level 20:20 power-retry 0:0 connect-change 0
05:44:02.057797+0100 kernel AGC:: [WindowServer pid:225] force EG up last PID 225 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:1f power-state 0 3D busy HDA idle system-state 1 power-level 20:20 power-retry 0:0 connect-change 0
05:44:03.336961+0100 kernel AGC:: mux-regs 10 3 7f 1f 0 0 severity 0 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:1f power-state 0 3D idle HDA idle system-state 1 power-level 20:20 power-retry 0:0 connect-change 0 : AGC Dump State Timer
05:44:07.059227+0100 kernel AGC:: HDAU WillPowerOff
05:44:07.059273+0100 kernel AGC:: HDAU HasPoweredOff
05:44:07.061698+0100 kernel AGC:: :::::::> PEG start powerdown [0m 6.732s uptime]
05:44:07.151376+0100 kernel AGC:: GFX0 WillPowerOff
05:44:07.151405+0100 kernel AGC:: GFX0 HasPoweredOff
05:44:07.151410+0100 kernel AGC:: EGP1 WillPowerOff
05:44:07.151449+0100 kernel AGC:: EGP1 HasPoweredOff
05:44:07.151453+0100 kernel AGC:: EGP0 WillPowerOff
05:44:07.151495+0100 kernel AGC:: EGP0 HasPoweredOff
05:44:07.151499+0100 kernel AGC:: PEG0 WillPowerOff, 3, AGC path 1 trace f
05:44:07.151520+0100 kernel AGC:: PEG0 HasPoweredOff, 3, AGC path 1 trace 1
05:44:07.187799+0100 kernel AGC:: *******> PEG powerdown took: 0.127s
05:44:10.070053+0100 kernel AGC:: mux-regs 10 0 40 1 0 0 severity 0 WS-ready 1 switch-state 0 IG FBs 1 EG FBs 0:0 power-state 6 3D idle HDA idle system-state 1 power-level 20:20 power-retry 0:0 connect-change 0 : AGC Dump State Timer
There's no message about the graphics device actually being switched from integrated (IDG) to discrete GPU (PEG), which was confirmed by the gfxCardStatus and the absence of "Switching from IDG to PEG" message in the logs.
By the way, if I force the discrete GPU using gfxCardStatus, the issue disappears.
At this point I'm stuck, as my knowledge of OS X architecture and debugging is exhausted. Can anyone provide any guidance?