Introduzione: perché l’output GDI per la grafica 2D rimane rilevante
Per prima cosa: se non hai ancora letto 2D, accelerazione e Windows: le schede grafiche non sono tutte uguali?, sentiti libero di dare un’occhiata prima a quella, poiché è la parte 1 di questa esplorazione della parte 2 nella storia del 2D in Windows e problemi attuali visti sulle schede grafiche discrete di fascia alta.
In questa seconda parte, ci concentriamo sull’importanza di GDI, spieghiamo l’output grafico 2D in modo più completo e ti presentiamo il nostro benchmark 2D (per le persone che non l’hanno già scoperto su Tom’s Hardware DE). Per comprendere appieno i risultati di quel benchmark, dobbiamo prima approfondire alcuni fondamenti teorici correlati.
Perché testiamo ancora GDI nell’era di Windows 7 e Direct2D?
Nella prima parte di questa serie, numerosi lettori hanno ipotizzato che, con l’introduzione delle schede grafiche compatibili con DirectX 10 e Windows Vista, i vecchi metodi GDI per l’output grafico 2D fossero diventati obsoleti. Il WPF (Windows Presentation Foundation), insieme a Direct2D, sono disponibili da tempo per gli sviluppatori Microsoft. Tuttavia, ci sono molte buone ragioni per cui GDI (l’interfaccia del dispositivo grafico) rimane indiscutibilmente significativa e rilevante, il che significa che dobbiamo esaminarne il comportamento e le prestazioni, anche per il nuovo e coraggioso mondo di Windows 7. Questi motivi includono:
Il GDI continua a supportare le vecchie schede grafiche, mentre Direct2D richiede schede in grado di supportare DirectX 10 o superiore.
GDI è supportato in tutte le versioni conosciute di Windows, mentre Direct2D è disponibile solo in Windows Vista e Windows 7.
Ogni applicazione grafica eseguita in Windows XP (e versioni precedenti di Windows) utilizza GDI
Molti sviluppatori di software resistono alla conversione del loro software da API precedenti a API più recenti. Ancora oggi, molti sviluppatori continuano a rivolgersi alle stesse librerie di programmazione ben conosciute, anche se sono disponibili tecnologie più recenti. La conversione da una libreria all’altra significa anche riscrivere e testare nuovamente tutti i moduli di codice interessati. Poiché i miglioramenti delle prestazioni risultanti dalla conversione da una libreria precedente a una nuova possono essere appena percettibili, gli sviluppatori di software si rifiutano anche di apportare tali modifiche per motivi puramente economici (troppo tempo e fatica per un risultato troppo piccolo). Se si prende come esempio illustrativo l’implementazione di Direct2D in vari componenti di Mozilla Firefox, si ha un’idea del ritmo lento del settore nell’esecuzione di questo processo di conversione. Inoltre, sarebbe una forma di suicidio aziendale per molte di queste aziende bloccare l’intera comunità di utenti di XP fuori dalle loro ultime versioni. Tutto ciò si aggiunge a un’unica osservazione convincente: è probabile che il GDI rimanga attivo fino a quando Windows XP non rappresenterà più alcun componente significativo della comunità degli utenti finali.
Poi ci sono ragioni tecniche per spiegare la persistenza di GDI. I moduli del codice GDI chiave (quelli inclusi e invocati più spesso nelle applicazioni Windows) non sono completamente portabili. Direct2D consuma anche una notevole potenza di elaborazione e risorse di sistema, ma non può fare nulla che anche Direct3D non possa fornire. E coloro che scelgono di saltare l’utilizzo di Direct3D di solito hanno considerato questa decisione con molta attenzione. Inoltre, il GDI funziona indipendentemente dai dispositivi di output, come monitor o stampanti, che potrebbero essere in uso. Pertanto, la stessa routine in un programma può eseguire il rendering della grafica su un monitor e l’output su una stampante, riducendo così il codice (e la sua successiva manutenzione e rischio di errore) fino alla metà. Molte delle stampanti più convenienti sono dispositivi GDI al giorno d’oggi, ed è improbabile che questa situazione cambi a breve,
Il tutto è più della somma di tutte le parti
Noi stessi consideriamo la conversione a WPF e Direct2D come una mossa spinta con forza da Microsoft e come un irreversibile passo avanti tecnico. Ma coloro che si scaldano e sono infastiditi dalle nuove tecnologie dovrebbero ripensare alle precedenti introduzioni, che ricapitoleremo in questo pezzo. Windows XP incluso, c’è più che sufficiente tecnologia legacy in giro che puoi davvero affrontare il futuro solo se sei disposto a ignorare il passato. Ma purtroppo, questo ignora le realtà in cui opera la maggior parte degli utenti, come la nota fobia per Windows XP mostrata dai chip grafici integrati 780G e 785G.
Vogliamo rivisitare i nostri benchmark della Parte 1 qui, ma questa volta utilizzeremo il nostro software personalizzato (i lettori possono anche scaricare questo strumento dal nostro sito ed eseguirlo sui propri PC). Osserveremo che anche le schede grafiche più costose falliscono in alcuni di questi test, se sono interessate da driver che non sono stati ottimizzati per quella che molte persone considerano una tecnologia più vecchia.