Fare i propri interessi non è sinonimo di illegalità o immoralità

Ha suscitato molto scalpore e sollevato parecchie polemiche la presentazione di un nuovo benchmark basato su H.A.W.X. 2, pensato per mettere alla frusta in particolare la tecnica di tessellation introdotta con le DirectX 11 da Microsoft.

In una recente notizia del nostro sito principale e in estrema sintesi, pare che Ubisoft abbia preferito non implementare una soluzione proposta da AMD, utilizzandone invece un’altra che penalizza le sue schede e che, invece, funziona molto bene su quelle della concorrenza.

E’ possibile che Nvidia abbia contributo allo sviluppo del gioco, a livello tecnico e/o economico, ma cosa ci sia realmente sotto non è dato saperlo, per cui è bene fermarsi alle mere ipotesi. In ogni caso i rapporti di esclusiva fra aziende non sono eventi nuovi né sanzionabili, a meno che non mettano a rischio la concorrenza nel mercato (e non mi pare questo il caso: il gioco girerà ugualmente, anche se con un frame rate inferiore).

AMD ha fatto sapere che provvederà con una soluzione ad hoc, intercettando l’esecuzione del gioco a livello di driver, probabilmente con operazioni di shader replacement, cioè sostituendo sequenze di codice eseguite dalla GPU con delle versioni ottimizzate per le sue schede.

Anche questa non è una novità, visto che si tratta di escamotage ben noto da anni, a cui hanno fatto ricorso entrambe le aziende a seconda delle occasioni e delle esigenze. Roba che ha fatto gridare allo scandalo certi utenti puristi (o puritani?), ma non necessariamente illecita o deprecabile.

Lo scandalo può derivare dalla convinzione che un gioco non debba essere “toccato” (modificato) in alcun modo, per cui i driver della scheda grafica non dovrebbero alterarne assolutamente il codice degli shader predisposto allo scopo dalla software house l’ha sviluppato.

Questa visione romantica e ingenua non può certamente conciliarsi con la realtà, specialmente con quella di matrice prettamente tecnica. Il 3D, infatti, è per definizione una modellazione (riduttiva) di ciò che ci circonda o addirittura di mondi del tutto nuovi, ed è necessariamente frutto di compromessi.

La stessa realizzazione di un gioco lo è, in quanto non esiste un unico e solo engine 3D che fa girare tutti i giochi, ma una moltitudine che presenta pregi o difetti a seconda degli obiettivi che la software house s’era prefissa. Giusto per essere chiari, un simulatore di volo ha sicuramente esigenze molto diverse da un gioco di ruolo, e l’engine sarà scritto di conseguenza.

I driver partono, quindi, da una situazione in cui chi ha scritto il gioco ha già provveduto ad approssimazioni varie, tirando anche fuori dal cappello trucchetti e idee, atti a rendere qualcosa che andrà a stimolare la visione del giocatore.

Pertanto ritoccare ulteriormente il codice in modo da ottenere prestazioni migliori sul proprio hardware è un’operazione legittima, oltre che auspicabile nello specifico, purché l’esperienza di gioco non venga modificata in maniera percepibile dall’utente finale.

Purtroppo proprio l’esperienza ci insegna che a volte ciò non accade, in quanto le sostituzioni effettuate possono introdurre artefatti o alterazioni sensibili dei dati, e anche questo si può dire tanto di Ati/AMD quanto di Nvidia . Anzi, con 3DMark penso si sia andato decisamente oltre il concetto di ottimizzazione, vista la rilevanza che viene data a quest’applicazione.

Non sempre, infatti, le nuove soluzioni sono matematicamente equivalenti a quelle originali, ma questo non è per forza di cose un male, proprio perché abbiamo a che fare con delle approssimazioni. Lo è, come già detto, se viene alterato il risultato finale in maniera percepibile.

Tornando ad H.A.W.X. 2, per forza di cose AMD dovrà adottare una soluzione che presenterà risultati diversi dal codice originale, perché sappiamo bene che l’unità di tessellation integrata nelle sue GPU presenta delle buone prestazioni a bassi valori di tessellation, mentre crollano a livelli più elevati.

Certamente stracciarsi le vesti pretendendo che AMD offra ugualmente una tessellation elevata ha poco senso, perché produrre tantissimi poligoni che coprono singoli pixel o addirittura lo stesso pixel non porta incrementi nella qualità visiva. Pertanto un certo margine di scostamento dal risultato originale non sarà deprecabile, ma l’utente finale dovrà rimanere appagato dalla resa visiva (e dal frame rate ottenuto).

Non v’è dubbio che AMD in questo momento si trova in una posizione difficile riguardo alla tecnica di tessellation, e pur avendola migliorata con la nuova famiglia 6800 non offre risultati comparabili a quelli delle GPU Fermi di Nvidia.

Può procedere ancora con la stessa tecnica di shader replacement per i prossimi giochi, ma sarebbe meglio spendere delle risorse per una soluzione più generale, magari sfruttando la potenza di calcolo dei numerosissimi (rispetto alla concorrenza) stream processor che la sua architettura mette a disposizione (fermo restando che è diversa da quella di Fermi), in attesa di una soluzione migliore a livello hardware (se ha senso farlo).

Lamentarsi e battere i piedi, però, non lo trovo accettabile. Si tratta oggettivamente di un problema suo e che deve provvedere a risolvere in prima persona, se vuole rimanere competitiva anche in questo campo. Nvidia da questo punto di vista ha semplicemente scelto di spendere i suoi soldi nella maniera che ritiene più conveniente, e nulla le si può rinfacciare.

Agli utenti non rimangono che tre soluzioni: non comprare le sue schede se sono convinti che senza tessellation non si possa vivere, attendere i nuovi driver di AMD, o semplicemente esercitare la migliore opzione che hanno come consumatori, cioè non comprare giochi come H.A.W.X. 2 e facendo sapere a Ubisoft che non intendono accettare la sua presa di posizione.

Quest’ultima è sicuramente meno praticabile, perché manca una solida coscienza collettiva dei consumatori. Si tratta di una questione prettamente culturale. D’altra parte esiste anche gente che si permette di giudicare una scheda grafica sulla base di un solo gioco o, peggio ancora, di un benchmark sintetico…

Press ESC to close