Cos'è lo 'swap parziale' nelle impostazioni di Chrome://flags?
La bandiera "disable-partial-swap"/opzione di lancio CLI, è stata implementata come un workaround per problemi con WebGL e contenuti renderizzati OpenGL, che hanno portato a problemi di BSOD (Blue Screen) nei sistemi operativi Windows con driver GPU nVidia "buggy", sfarfallio in Mac OSX, e congelamento, crash delle applicazioni e blocchi del sistema in Linux (specifiche schede GPU, driver e versioni OS interessate non sono esplicitamente indicate, per quanto ne so). Da quello che ho capito, ha effetti solo sui sistemi con GPU nVidia discrete, e ancora di più se OpenGL viene utilizzato al posto di DirectX per il rendering 3D (anche se, sembra cambiare il comportamento delle chiamate WebGL che sono utilizzate anche per il compositing di tele 2D, quindi è probabile che abbia un effetto su qualsiasi sistema guidato da nVidia indipendentemente dal renderer 3D. Tuttavia, è improbabile che i sistemi con grafica integrata siano influenzati dal cambiamento di questo flag.
TIP: Andate su chrome://gpu per la pagina dei dati e del debug della GPU. Qui troverai tutte le informazioni sulle capacità della tua GPU, i workaround per il comportamento buggy che sono attivi (automaticamente) e le bandiere impostate in modo errato/non ottimizzate.
L'ultima menzione che ho potuto trovare nel repository di Chromium è vecchia di 2 anni-indicando che, a meno che non ci sia un problema che stai vedendo, hanno probabilmente impegnato patch complete che dovrebbero selezionare correttamente il comportamento predefinito. Il flag sembra essere lasciato come un'opzione legacy, o per quelli con hardware e debug più vecchi, e non mi aspetterei alcun miglioramento delle prestazioni cambiandolo dal default.
Per quanto riguarda ciò che il flag effettivamente fa... Lo spazio di swap della GPU è semplicemente memoria volatile memorizzata su disco, piuttosto che sulla scheda interna della GPU. Tuttavia, questo può anche riferirsi alla cache condivisa della memoria di sistema/gpu. Se lo swap parziale è disabilitato abilitando il flag, allora si osserva un comportamento di swap completo. Lo swap parziale si riferisce probabilmente a una tecnica di supporto di memorizzazione eterozigote che implementa una memoria di sistema e GPU ibrida, e su disco. Lo swap è una cache di dati riutilizzati. Lo swap completo probabilmente significa che tutti i dati che non vengono visualizzati al momento o che vengono pre-renderizzati in preparazione di un evento come lo scroll o il ricaricamento, vengono eliminati dai buffer della GPU e memorizzati su disco - lasciando tutta la memoria dedicata della GPU libera per il rendering del contenuto attualmente visualizzato. Questo ha senso per le vecchie GPU con bassa GDDR, ma le GPU più recenti di solito raramente raggiungono il picco di memoria nelle normali attività grafiche, anche nei giochi intensi. Attività come la codifica e l'editing di video QHD possono iniziare a riempire quei buffer, ma la navigazione non lo farà (a condizione che la vostra scheda abbia almeno 4GB GDDR5/6 o HBM2(+). Anche 1GB-2GB dovrebbe essere sufficiente per la navigazione web su un singolo monitor e per un singolo compito.
La ragione per cui la piena memoria potenziale della GPU non viene utilizzata è che non c'è sandboxing della memoria della GPU, e i buffer overrun e le perdite sono abbastanza comuni, quindi memorizzare una grande cache di frame completamente renderizzati sulla memoria dedicata della GPU, la lascia aperta per essere letta da qualsiasi altro programma sul sistema - possibilmente spyware. Memorizzare l'intero swap su disco permette il sandboxing pur conservando il contenuto pre-renderizzato che può essere rapidamente ri-renderizzato dalla gpu con un trasferimento su disco del contenuto, e memorizzare lo swap parziale permetterebbe alla maggior parte dei dati di rimanere nella memoria della GPU, ma rimuovendo i pezzi vitali in modo che l'immagine sia offuscata e illeggibile (come mantenere i pezzi del puzzle, ma memorizzando la loro esatta posizione su disco). In questo modo, una GPU non avrebbe bisogno di aspettare un trasferimento completo (abbastanza lento) su disco di tutti i frammenti dell'immagine, o anche un trasferimento dalla RAM di sistema notevolmente più lenta, ma solo i piccoli dati su come le immagini sono assemblate.
A parte le implementazioni di sicurezza, la memoria della GPU, a causa della sua altissima velocità e della mancanza di qualsiasi controllo degli errori (che non è necessario, dato che piccole corruzioni sono di solito accettabili, dato che il risultato finale non è più di un piccolo artefatto nell'immagine renderizzata che di solito non viene notato), è notoriamente soggetta a corruzioni. La navigazione web riutilizza un sacco di contenuti pre-renderizzati (da font e testo, a backgroung e nav-bar), il che significa che piccole corruzioni potrebbero portare a maggiori artefatti d'immagine e ad eventuali crash del renderer. Questa sembra essere la ragione principale per implementare il flag in primo luogo.
Pensieri finali: Non dovrebbe esserci bisogno di disabilitare lo swap parziale. Raccomandiamo di lasciare l'impostazione predefinita. In ambienti estremamente sensibili, lo swap completo (disabilitando lo swap parziale) può essere vantaggioso. Dovrebbe avere un effetto solo sui sistemi con GPU nVidia (anche se potrebbe influenzare tutta la grafica discreta in una certa misura - anche se credo che solo i driver nv abbiano chiamate per il comportamento di swap parziale). Se stai vedendo un'alta frequenza di artefatti visivi durante la navigazione, considera la possibilità di disabilitare lo swap parziale e vedere se questo aiuta.
Articoli simili
- Cosa significa "Supporto parziale del controller" su Steam? Posso giocare a un gioco usando un controller per PC molto economico?
- Qual è la differenza tra un six flags season pass e un abbonamento?
- Che cosa significa 'Six Flags over Texas'?
- Come resettare le impostazioni del BIOS alle impostazioni di default