Mi sembra che tu abbia Sincronizzazione verticale abilitato. Questa funzione blocca la frequenza dei fotogrammi a una frazione della frequenza di aggiornamento del display (1, ½, ⅓ ...) per evitare artefatti visivi (in particolare, "lacrimazione") e frequenze fotogrammi di fuga (che potrebbero danneggiare una GPU). Un'indicazione abbastanza buona di questo è una frequenza fotogrammi che salta da 30 a 60 FPS e viceversa, con niente di intermedio.
Il mirroring sta influenzando le prestazioni quel tanto che basta per far cadere la frequenza dei fotogrammi al di sotto dei 60 FPS. Anche se altrimenti avessi 59 FPS, Vertical Synchronization porterebbe la frequenza dei fotogrammi a 30 FPS.
Ciò può anche comportare un ritardo di input. Poiché il tuo schermo / cursore è ora ridisegnato metà (o un terzo) come frequentemente, il ritardo tra lo spostamento del mouse e la visualizzazione del risultato sullo schermo sarebbe due o tre volte più lungo.
Accedi alle impostazioni video di Portal e Disattiva Sincronizzazione verticale . Non gioco Portal, ma quasi ogni gioco ha quell'opzione. Potrebbe essere denominato V-Sync .
Potrebbe essere necessario passare dalla modalità Windowed a Schermo intero . Poiché macOS forza V-Sync per il desktop principale, V-Sync può ancora essere applicato durante la riproduzione in una finestra.
Per ridurre al minimo gli effetti negativi della disattivazione di V-Sync , molti giochi offrono la possibilità di limitare la frequenza dei fotogrammi. Se questa opzione è disponibile, prova a impostare un massimo di, ad es. 90 FPS o anche 60 FPS . Questo offre spesso il meglio di entrambi i mondi.
Verifica se una combinazione di queste soluzioni risolve il tuo problema.
Se preferisci mantenere V-Sync attivato, molti giochi offrono un'opzione per abilitare Triple-Buffering . Ciò contribuirà a ridurre i frame rate (quindi riducendo al minimo i bruschi cali di frame rate). Abilitarlo può anche comportare un aumento del ritardo di input, sebbene di solito non così grave come quello causato dalla caduta di 30 FPS.
Un ultimo suggerimento sarebbe cercare di estendere il desktop sullo schermo esterno come Spazio separato (possibile con Yosemite e sopra, credo). Il tuo caso d'uso richiede anche Mirroring ? Non sono così familiare con questo sul Mac, ma non vedo perché questo non sarebbe possibile.
Spiegazione a volo d'uccello di cosa sta causando il calo della frequenza fotogrammi con il mirroring:
Con Mirroring , il tuo Mac deve visualizzare lo stesso frame sul display interno e sul display esterno. Oltre a far attendere i display l'uno sull'altro, ciò comporta un ulteriore "lavoro" che include il tempo di calcolo extra e la gestione del buffer (per assicurarsi che visualizzino la stessa cosa allo stesso tempo), così come il ritardo di andata e ritorno tramite cavo esterno o peggio, Wi-Fi / Bluetooth.
Mentre ciò accade, la tua GPU sta visualizzando il frame successivo nel suo buffer interno, ma non lo invia al tuo display finché non ottiene l'OK (a causa di V-Sync ). Durante questo periodo di attesa, la GPU viene effettivamente messa in pausa, non il rendering di frame aggiuntivi (a meno che non sia disponibile il Triple o N-Buffering), che riduce ulteriormente la frequenza dei fotogrammi. Quindi, a seconda di dove si trova il display più lento nel suo ciclo di aggiornamento, la visualizzazione del fotogramma successivo potrebbe essere posticipata di nuovo alla frazione successiva.
Devi tenere presente che per rendere il tuo gioco a 60 FPS, il tuo sottosistema grafico ha solo 33ms per eseguire tutto quel lavoro extra (meno il tempo necessario alla GPU per renderizzare quei frame in primo luogo). Il roundtrip da e verso il tuo display esterno da solo potrebbe richiedere un paio di millisecondi. Il lavoro di sincronizzazione è di per sé costoso (in termini di tempo). Non è imperscrutabile che la sincronizzazione di due schermi richieda più di 20 o 30 millisecondi.
Ora, nel paragrafo precedente stavo dando per scontato che la tua GPU fosse pronta con il fotogramma successivo al momento in cui i tuoi schermi erano stati disegnati quello corrente. Immagina che non lo fosse. Bene, ora i display sono affamati, e sono quelli che finiscono per aspettare sulla GPU. Probabilmente finirai per passare alla frazione successiva della tua frequenza di aggiornamento più lenta. Ciò che potrebbe significare un calo di FPS 1-2 V-Sync Off si trasforma in 30 FPS con On .
Quindi stai provando a sincronizzare due schermi (tramite Mirroring ), quindi prova a sincronizzarli contro la tua GPU (tramite V-Sync ). Il risultato è potenzialmente tanta, tanta, tanta attesa.
Non è raro che si verifichi un calo delle prestazioni durante la connessione di sottosistemi con livelli di prestazioni diversi. Ecco perché sono stati creati buffer e operazioni asincrone.
Durante la sincronizzazione, un ritardo ovunque provoca ritardi ovunque.
Per ottimizzare le prestazioni, lascia che ognuno faccia il suo lavoro nel suo tempo libero.