FSR, XeSS e il Problema della Latenza

Ricostruzione cross-vendor, e perché un gioco a 240 FPS può sembrare uno a 60.

Questo capitolo ha due metà. Prima le alternative cross-vendor a DLSS la famiglia FSR di AMD e XeSS di Intel perché i loro vincoli di progetto sono istruttivi. Poi il problema della latenza: perché un gioco che gira a "240 FPS" con frame generation non risponde al tuo input come farebbe un gioco a 240 FPS, e cosa fanno le tecnologie di classe Reflex a riguardo.

FSR: l'alternativa aperta

Il FidelityFX Super Resolution di AMD è open-source e cross-vendor gira su GPU NVIDIA, Intel e console. È passato attraverso quattro revisioni maggiori:

  • FSR 1 (2021) solo spaziale. Discusso nel capitolo 6. Per lo più obsoleto.
  • FSR 2 (2022) temporale, calibrato a mano (nessuna rete neurale), grossomodo comparabile a DLSS 2 in shot stabili in movimento ma peggio in movimento. Gira essenzialmente su qualsiasi GPU moderna.
  • FSR 3 (2023) aggiunge la frame generation come algoritmo separato calibrato a mano (non neurale) costruito su optical flow + motion vectors, in esecuzione su shader core. La qualità dell'immagine dei frame generati è sotto DLSS 3.
  • FSR 4 (2025) finalmente una rete neurale, addestrata per le nuove unità ML di RDNA 4. La qualità dell'immagine salta più vicino a DLSS nelle comparazioni indipendenti. AMD si è impegnata a far funzionare FSR 4 sulle GPU AMD più vecchie alla fine, con feature ridotte.

La tensione interessante qui: FSR 1–3 deliberatamente non era una rete neurale perché AMD ha scelto di shippare una tecnica che funziona su ogni GPU. Il costo di quella decisione era la qualità dell'immagine. FSR 4 ha abbandonato quel vincolo ed è immediatamente diventato sostanzialmente migliore al prezzo di essere effettivamente solo-tier-RDNA-4.

Timeline orizzontale dal 2021 al 2025 che mostra le quattro generazioni di FSR come blocchi etichettati: FSR 1 (spaziale, singolo frame, blu), FSR 2 (temporale, verde), FSR 3 (temporale + frame generation, arancione), FSR 4 (neurale, rosso). Ogni blocco elenca la sua proprietà tecnica chiave. Caption 'AMD's path from spatial → temporal → neural'. Infografica tecnica pulita.
Il percorso di FSR dal filtro spaziale (2021) all'upscaler neurale completo (2025) lo stesso arco che DLSS ha percorso anni prima.

Perché FSR 2/3 sembra peggio nonostante la stessa idea

DLSS e FSR 2/3 hanno una forma architetturale quasi identica entrambi sono upscaler temporali che consumano colore con jitter, motion vectors, depth e un buffer di history. La differenza è cosa succede dentro la scatola.

DLSS usa una rete neurale con milioni di parametri addestrata su milioni di esempi. FSR 2/3 usa un piccolo numero di operazioni calibrate a mano: color clamping in uno spazio colore custom, validazione della history basata su depth, maschere reactive per la trasparenza e un kernel di upsampling custom. Entrambi possono produrre still eccellenti; in movimento, la rete neurale gestisce casi limite che il filtro calibrato a mano perde, specialmente:

  • Gestione delle feature sottili (cavi, capelli, antenne). DLSS le tiene meglio.
  • Fill della disocclusion. DLSS rigenera più velocemente; FSR mostra fizzle per più tempo.
  • Superfici reactive (acqua, speculari). DLSS è meno incline a sbavature oleose.

FSR 4 chiude la maggior parte di questo gap, prevedibilmente, sostituendo le euristiche calibrate a mano con una funzione appresa esattamente la stessa transizione che DLSS ha fatto tra 1 e 2.

XeSS: il design a due livelli di Intel

XeSS di Intel è un upscaler temporale neurale nella famiglia DLSS. Quello che lo rende distintivo: Intel lo shippa in due versioni dallo stesso codebase.

  1. Path XeSS XMX gira sulle unità matriciali XMX delle GPU Intel Arc, rete completa, qualità piena. Comparabile a DLSS 2 / 3.
  2. Path XeSS DP4a stessa rete, compilata per usare l'istruzione DP4a (prodotto scalare di interi a 8 bit) supportata essenzialmente su ogni GPU moderna. Qualità più bassa (rete più piccola, meno precisione), ma cross-vendor.

È pragmatismo ingegneristico. Shippando la stessa rete in due precisioni/dimensioni, Intel può rivendicare "qualità migliore" sul proprio hardware mentre rimane comunque una vera opzione cross-vendor. AMD, con FSR 4, si è avvicinata allo stesso modello.

Diagramma ad albero che mostra lo stesso codice sorgente della rete XeSS compilato in due output: il ramo superiore etichettato 'XMX path   full precision, Intel Arc', il ramo inferiore etichettato 'DP4a path   8-bit, any GPU'. Entrambi confluiscono in un 'Quality output' con il ramo superiore notevolmente più nitido. Infografica tecnica pulita.
Una rete XeSS, due target di compilazione qualità piena su Intel XMX, fallback DP4a a qualità ridotta su tutto il resto.

La lezione cross-vendor

La traiettoria è coerente su tutti e tre i vendor:

Euristiche calibrate a mano → piccola rete neurale su hardware generico → rete neurale più grande su hardware specializzato.

L'economia spinge tutti nella stessa direzione. L'hardware specializzato per matematica matriciale è poco costoso da aggiungere a una GPU perché il rendering di gioco lo vuole già per denoiser ray-tracing, light probe e compressione asset. Una volta che ce l'hai, tanto vale usarlo per l'upscaling. Una volta che lo usi per l'upscaling, tendi a vincere sulla qualità.

Per questo ogni nuova architettura GPU del 2025–2026 ha accelerazione ML dedicata: Tensor Core NVIDIA, AI Accelerator AMD, XMX Intel, Neural Engine di Apple, blocco custom della PS5 Pro di Sony e la "AI capability" di Microsoft per la prossima Xbox. La ricostruzione è la killer app che giustifica tutti loro.

Parte due: il problema della latenza

Ora alla parte che esce con la scritta in piccolo su ogni slide di marketing della frame generation.

Cosa significa latenza qui

Quando premi un tasto, varie cose accadono prima che il frame risultante raggiunga il tuo occhio:

  1. Polling dell'input il gioco campiona tastiera/mouse/controller.
  2. Simulazione CPU fisica, animazione, AI, logica di gameplay aggiornano lo stato del mondo.
  3. Render command buffer della CPU il motore costruisce la lista di draw GPU per il nuovo stato.
  4. Render GPU la GPU esegue la lista di draw.
  5. Scan-out del display il frame finito viene mandato al monitor.

La latenza end-to-end è la somma di tutto questo tipicamente 30–60 ms in una pipeline di gioco normale, abbastanza bassa da sembrare reattiva. La frame generation si aggiunge a questo numero per come deve essere sequenziata.

Perché FG aggiunge latenza

Ricorda dal capitolo precedente: per produrre il frame generato N.5, hai bisogno sia del frame renderizzato N che del N+1. Il che significa che il frame renderizzato N+1 deve essere già disponibile prima di poter mostrare N.5. Il che significa che il frame renderizzato N è trattenuto dal motore finché N+1 non è pronto altrimenti verrebbe mostrato prima di N.5, rompendo il pacing.

Risultato: ogni frame renderizzato è ritardato di un intervallo di render prima del display. A 60 FPS renderizzati sono 16,6 ms di latenza input-to-photon aggiunta. Il display frame rate è 120, ma la reattività sembra come 30 FPS più lenta di se avessi giocato a 60 senza FG.

Diagramma a timeline che mostra l'input in arrivo al tempo T. Senza FG: viene renderizzato immediatamente e visualizzato a T+16ms. Con FG: l'input arriva a T, il renderer sta producendo il frame N+1 (necessario per FG), quindi il risultato è trattenuto finché N+1 non termina, il frame N.5 viene calcolato e poi visualizzato   totale T+33ms. Annotato per mostrare la latenza aggiunta. Infografica tecnica pulita.
FG deve trattenere il frame renderizzato N finché N+1 non è pronto, aggiungendo un intervallo di render di latenza a ogni frame visualizzato.

NVIDIA Reflex (e equivalenti)

Reflex è la soluzione di NVIDIA. Non è una tecnica singola ma un bundle di meccanismi di riduzione della latenza:

  • Coda di render ridotta. Normalmente la CPU gira 1–3 frame avanti rispetto alla GPU per tenerla occupata. Reflex blocca questo a 0–1 frame. Il throughput scende leggermente, la latenza scende molto.
  • CPU paced dalla GPU. La CPU inizia a simulare un nuovo frame appena in tempo perché la GPU inizi a renderizzarlo, non prima. Lo stato simulato riflette quindi l'input più recente.
  • Coordinamento a livello driver. Il driver comunica il timing del frame al motore così il tick di simulazione si allinea con lo scan-out del display, non con il tempo di orologio arbitrario.

Reflex da solo (in un gioco non-FG) riduce la latenza end-to-end di 10–40 ms. Con FG attivo, Reflex è obbligatorio il runtime di NVIDIA si rifiuta di abilitare FG senza Reflex perché annulla la maggior parte della penalità di latenza che FG aggiunge.

AMD ha un equivalente chiamato Anti-Lag 2 (precedentemente Anti-Lag+, integrato nel motore piuttosto che nel driver, dopo che l'Anti-Lag originale a livello driver ha avuto problemi di compatibilità). La piattaforma PS5 di Sony ha controlli di scheduling in-OS simili. Intel ha un equivalente meno sviluppato.

Il conto onesto

Con Reflex e frame generation insieme:

Impostazione Render FPS Display FPS Latenza input grossomodo equivalente
Nativo, no Reflex 60 60 60 FPS
Nativo + Reflex 60 60 sensazione ~80 FPS
FG + Reflex 60 120 sensazione ~50 FPS
FG + Reflex (ben sopra il CPU bottleneck) 120 240 sensazione ~100 FPS

Il pattern: FG sempre alza il display rate, ma solo mantiene la latenza di input rispetto al non-FG; non la migliora mai. Reflex riduce la latenza separatamente, e la combinazione è grossomodo neutra in latenza rispetto a una configurazione non-FG con solo Reflex. Quindi il beneficio onesto di FG è la fluidità del movimento, non la reattività.

Quando usare FG, quando no

Una regola ragionevole:

  • Single-player, giochi visivamente ricchi: FG è una vittoria chiara. Cyberpunk, Alan Wake, Hogwarts Legacy sembrano tutti meglio a 120 FPS visualizzati anche con la leggera penalità di latenza.
  • Multiplayer competitivo: FG raramente vale la pena. I giocatori di Counter-Strike, Valorant, Apex tengono alla latenza, non alla chiarezza del movimento.
  • Sotto i ~40 FPS renderizzati: non farlo. Gli artefatti di interpolazione diventano visibili e la latenza aggiunta è intollerabile.
Semplice diagramma decisionale con tre domande sequenziali. Domanda 1: 'Is the game competitive multiplayer?'   se sì, non usare FG. Domanda 2: 'Is your rendered FPS above 60?'   se no, salta FG. Domanda 3: 'Do you have a 120Hz+ display?'   se no, FG non offre benefici. Altrimenti, usa FG. Infografica pulita, sfondo scuro.
Quando attivare FG e quando il costo di latenza di input lo rende attivamente peggio del refresh rate più basso.

Nel prossimo capitolo guardiamo gli artefatti stessi cosa causa ghosting, smearing, fizzle di disocclusion e "shimmer" a livello algoritmico perché quel vocabolario ti permette di leggere correttamente qualsiasi comparazione di immagini in stile DF.