Come passare da DirectX 12 a DirectX 11 (ed eliminare freeze e crash nei giochi Windows)

Hai un vecchio titolo che si blocca per alcuni secondi e poi si chiude da solo? Il più delle volte la colpa è dell’API grafica predefinita: DirectX 12. Passare a DirectX 11 elimina quasi sempre freeze e crash, e si fa in pochi minuti: ecco la guida completa, dalle basi ai trucchi avanzati.

Indice

Perché DirectX 12 può mandare in crisi i giochi di qualche anno fa

DirectX 12 è stata pensata per ridurre l’overhead della CPU e offrire funzioni moderne come ray tracing e variable rate shading. I giochi pubblicati fra il 2013 e il 2018, però, spesso implementano DX12 in modo “sperimentale”: driver acerbi, patch tardive o motori grafici non rifattorizzati generano code di rendering più complesse di quanto la GPU possa digerire. Risultato: picchi di utilizzo della CPU, stuttering massiccio, blocchi di 5‑10 s e crash.

Verifica: stuttering, freeze o crash?

  • Stuttering leggero (1‑2 s) – texture che si caricano, streaming tardivo di shader; può bastare abbassare le impostazioni grafiche.
  • Freeze prolungato (5‑10 s) – l’applicazione resta “non rispondente”, poi riparte o va in crash: tipico di DX12 mal gestito.
  • Crash immediato – finestra chiusa, a volte senza log; spesso l’engine torna a DX11 di default al riavvio e il problema scompare.

Soluzioni pratiche per forzare DirectX 11

MetodoDove agirePassaggi essenziali
Impostazioni interne del giocoMenu Grafica/Video/Avanzate1. Apri le opzioni grafiche.
2. Imposta la voce API grafica o Versione DirectX su DirectX 11.
3. Salva e riavvia il gioco.
Opzioni di avvio (es. Steam)Steam → Libreria → [Gioco] → Proprietà → Generale → Opzioni di avvio1. Inserisci il parametro -dx11 (oppure -force-d3d11 se il motore lo supporta).
2. Chiudi la finestra e avvia il gioco per verificare.

Perché non esiste uno “switch globale DirectX” in Windows

Tutte le versioni di Windows dal 7 in poi installano in parallelo i runtime DirectX 9, 10, 11 e 12. Il sistema operativo carica la libreria richiesta dal gioco al momento dell’avvio: non c’è un interruttore universale, per ragioni sia tecniche (l’applicazione compila lo shader bytecode per una specifica API) sia di licenza. Serve dunque agire sul gioco o sul launcher.

Tutorial passo‑passo per i principali launcher

Steam

  1. Apri Libreria, fai clic destro sul gioco, seleziona Proprietà.
  2. Nella scheda Generale trova Opzioni di avvio.
  3. Scrivi -dx11, chiudi la finestra.
  4. Avvia: nella maggior parte dei titoli apparirà un riquadro “DirectX 11”. Se non lo vedi, controlla nel menu grafico in‑game.

Epic Games Launcher

  1. Clic sul nome del gioco → Gestisci.
  2. Abilita Argomenti della riga di comando.
  3. Inserisci -d3d11 (Unreal Engine) o -dx11 (motori custom).

EA app / Origin

  1. Vai su La mia libreria, clicca col destro → Proprietà del gioco.
  2. Nella sezione Opzioni di avvio immetti -rendering-api 11 (per Frostbite) o -dx11.

Ubisoft Connect

  1. Seleziona il gioco, clicca su Proprietà.
  2. Sotto Parametri di avvio aggiungi la voce -dx11.

GOG Galaxy

  1. Fai clic sul titolo → Impostazioni (icona ingranaggio).
  2. Abilita Argomenti della riga di comando.
  3. Digita -dx11 e salva.

Esempio pratico: The Witcher 3 (Next‑Gen patch)

Dopo l’aggiornamento “Next Gen” il launcher permette DX12 con ray tracing. Se hai GPU di fascia media datata (es. GTX 1060, RX 580), potresti subire freeze allo sblocco di Achievements.

  1. Nel menu Video → Grafica imposta DirectX Version su 11.
  2. Disattiva Ray Tracing (non compatibile con DX11).
  3. Applica e riavvia il titolo.
  4. Il gioco caricherà risorse più rapidamente, con CPU load inferiore del 20‑30 % e zero crash dimostrati nei log witcher3.exe.crash.txt.

Approfondimento tecnico: cos’è cambiato da DX11 a DX12

In DX11 il driver gestisce il Command Submission: il gioco invia draw calls, il driver le ordina e le invia alla GPU. È “facile” per gli sviluppatori ma introduce overhead (ogni chiamata è verificata dal driver). DX12 delega gran parte del lavoro al motore del gioco (user‑mode driver), che deve quindi gestire resource barriers, threading e sincronizzazione. Se il codice non è ottimizzato o se un driver di GPU più vecchia (Maxwell, GCN 1.0) non è stato perfezionato, i costi di sincronizzazione possono esplodere, saturando la CPU e causando TDR (Timeout Detection and Recovery) di Windows, cioè il famoso “display driver has stopped responding”.

Driver GPU aggiornati e patch di gioco

Prima di spostarti su DX11 controlla sempre:

  • Driver NVIDIA – scarica l’ultima Game Ready o Studio. Le release note indicano bugfix per “Application stability in DirectX 12”.
  • Driver AMD – verifica l’Adrenalin più recente; molte note includono “Fixed intermittent app crash with DirectX 12 API”.
  • Hotfix o community patch – forum ufficiali o NexusMods hanno spesso file che disabilitano DX12 o sistemano memory leak.

Modifica manuale dei file di configurazione

Alcuni titoli non espongono l’opzione nel menu. In questo caso:

  1. Apri la cartella Documenti\[NomeGioco] oppure Steam\steamapps\common\[NomeGioco].
  2. Cerca file .ini, .cfg o .xml. Esempi comuni:
    GameUserSettings.ini
    render_settings.xml
    engine.cfg
  3. Trova parametri come dx12=1, Renderer=DX12 o r.GraphicsAPI=D3D12.
  4. Impostali a 0 o sostituisci con DX11.
  5. Salva e rendi il file “sola lettura” per evitare che il launcher sovrascriva la modifica.

Ridurre sovraccarichi extra: overlay e servizi in background

Anche usando DX11 puoi ritrovarti stuttering se il sistema è impegnato da processi che “hookano” la finestra del gioco:

  • Overlay Discord – disattiva da Impostazioni → Overlay di gioco.
  • Steam Overlay – nelle proprietà del gioco togli la spunta “Abilita Steam Overlay”.
  • Registrazione Xbox Game Bar – da Impostazioni → Giochi → Game Bar passa l’interruttore a Off.
  • Software RGB – Armoury Crate, iCUE e similari possono iniettare DLL; prova a chiuderli.

FAQ rapide

Perderò qualità grafica passando a DX11?

Per la maggior parte dei giochi pre‑2020 le differenze sono minime: DX12 a volte abilita ombre PCSS o tassellazione leggermente migliore, ma spesso si guadagna fluidità.

DX11 supporta il ray tracing?

No. Se il tuo titolo usa RT su DX12, disattiverà l’opzione quando rileva DX11.

Quale parametro usare se -dx11 non funziona?

Prova -d3d11, -force-d3d11, -rendering-api 11 oppure consulta il file Readme del gioco: gli engine personalizzati rinominano spesso il flag.

Conclusioni

DirectX 12 è un’API potente ma esigente: su hardware o software non ottimizzati porta più grane che benefici. Forzare DirectX 11 è la via più rapida per tornare a giocare senza freeze e crash. Ricorda di:

  1. Impostare l’API dal menu grafico quando disponibile.
  2. Usare parametri di avvio (-dx11, -d3d11) sui launcher.
  3. Modificare i file di configurazione se il gioco non espone l’opzione.
  4. Mantenere driver e patch aggiornati.

Seguendo questi passaggi avrai un titolo stabile, framerate più costante e minori rischi di corruzione dei salvataggi. Buon divertimento!

Indice