Sì, io parlavo in particolare dell'Asynch Computing però, non delle DX12 in generale. I potenziali miglioramenti prestazionali per le schede AMD non sono solo sul fronte calcolo asincrono, ma anche nell'overhead sulla CPU che diminuirà in maniera esponenziale
Le texture unit si occupano di mappare le texture e sono importanti nel caso di giochi con texture pesanti in alta definizione.
I ROP\s invece definiscono quanti pixel è in grado di calcolare la VGA in un ciclo di clock: un pixel fillrate alto è importante per avere buone prestazioni con AA pesanti o alle alte risoluzioni (unitamente a un buon bandwidth di memoria).
Da notare che in realtà la GTX1080 ha 40ROP\s, sebbene fisicamente siano presenti 3 partizioni ROPs, perchè ha solo 10 SMM ognuno dei quali può calcolare 4 pixel per ciclo di clock.
Il calcolo asincrono però riguarda la GPU, non la CPU, cosa mi sfugge?
Poi è vero che la nuova API è perfettamente scalabile su più core, mentre con le DX11 ciò quasi non avveniva, ma indipendentemente dal calcolo asincrono.
pribolo, ricorda che se usi AC il lavoro sulle ROPs puó essere non per forza contiguo, e questo porta anche ad avere lunghezze del calcolo non fissa, quindi a poter usare il processore grafico diversamente.
in DX12 si perde perció la valenza del numero di ROPs totali, che permette di conoscere quanti calcoli puoi operare a ciclo di pipeline (anche perche i singoli cicli completi di una pipeline non hanno piu' una "tempistica" fissa, se hai la possibilita' di avere lunghezze variabili della pipeline stessa, ma ne hai diverse, a seconda del numero di diverse lunghezze che puoi operare).
ricorda anche che le DX11 sono limitate nel numero di thread primari, proprio per l'assenza di ACE ed AC, quindi si esprimono al masimo in concomitanza del massimo numero di therad primari ( impostati dal motore grafico) e dal numero massimo di core del processore, in dipendenza poi della velocitá di questi.
di per se dividere un calcolo comporta comunque un maggior lavoro e visti i limiti descritti sopra si deve capire quanto conviene dividere (perdendo prestazioni), per guadagnare in parallelismo.
AC e' una divisione che si effettua in GPU, dando la possibilita' di frammentare i calcoli, ma conseguentemente permette l'uso di piu' thread paralleli primari, che hanno le loro sequenze anche sulla CPU.
e' percio' un lavoro congiunto tra' CPU e GPU.
un gioco in cui e' possibile sfruttare adeguatamente AC sulla GPU riesce ad esprimersi al meglio quando hai una CPU con molti di core, soprattutto se veloci, ma richiede di per se piu' lavoro per la frammentazione.
hai un DX11 capace di produrre 4 therads primari simultanei? andra' meglio su un quad core che su un dual core, anche se ti costera' almeno il 5% in piu' di computazione.
hai un octacore nella stessa situazione? non comportera' ulteriori vantaggi, perche' vero che puoi allocare piu' threads simultameamente, ma i primari, quelli che prenotano il core e non lo lasciano ad uso di altri, sono solo 4, mentre gli altri 4 core possono operare su thread non primari.
stesso ragionamento lo puoi estendere in DX12, ma senza piu' il limite dei thread primari, che sono limitata esclusivamente non dal motore grafico, ma dalla tipologia del gioco.
in alcune tipologie non conviene frammentare i thread, in altre e' necessario.
insomma, le DX12 ti eliminano i limiti, ma rimane comunque da decidere se, per un dato gioco, conviene sfruttarlo o meno, visto che piu' frammenti piu' aumenti il lavoro.
si e' quindi lavorato sulla flessibilita' ed adattabilita' dell'HW e del software per garantire, dove necessario, l'assenza di limiti imposti.
pero' il limite che si presentera' presto diventera' la frequenza del singolo core, e se limiti il gioco ad un solo therad, sara' questa, su qualsiasi processore usi, ad essere artefice del frame rate finale...
se tutti si spostano su octacore a frequenze inferiori ai quad core (perche' magari convengono per altri motivi non esclusivamente gaming, e non esclusivamente su una tipologia di games), il problema si fara' sentire, e magari sara' conveniente adottare AC anche quando non effettivamente necessario per un determinato gioco.
ti faccio una similitudine bislacca: le 2 mani.
viviamo e costruiamo il nostro mondo in questo modo perche' abbiamo 2 mani e 2 braccia lunghe tot.
se domani incominciano a nascere persone con 3 mani e braccia lunghe 1/2 di tot... he, si attaccano! per loro sara' scomodo.
se pero' il numero di persone con 3 mani e 3 braccia corte supera il numero di quelli che hanno 2 mani e 2 braccia lunghe, il mondo si adattera' a loro (l'ergonomia delle cose che costruiamo).
se loro si diffondono piu' di noi, alla fine saremmo noi ad attaccarci al tram, perche' vivrai in un mondo fatto di cose che sono piu' comode da usare se hai 3 mani e 3 braccia corte.