Quote:
Originariamente inviato da DjLode
Ammetto di essere un pò fuori dal giro e quindi magari dico una castroneria. Se non ricordo male, anche se con implementazioni diverse, sia Nvidia che Amd supportano il ray tracing delle DX, quindi un gioco sviluppato aderendo a tali specifiche (al netto di ottimizzazioni che possono farlo rendere meglio/peggio su una o l'altra) dovrebbe essere "ugualmente funzionante".
Sbaglio io?
|
Non sbagli, in teoria. In pratica, dipende da cosa ci fai e da come forzi il calcolo, perché magari uno stesso effetto lo puoi ottenere in maniera diversa e/o con un diverso pattern di accesso ai dati. Non so se ricordi ad esempio quando uscì 3Dmark Timespy, ci fu un bel po' di discussione per il modo in cui implementa gli Asyncronous shaders: in pratica utilizza la metodologia pre-emptive (tutti gli shader eseguono un pezzo del lavoro1, poi passano al lavoro2) invece del parallel (Parte degli shader eseguono il lavoro1, parte il lavoro2) - e la metodologia 1 girava meglio su Nvidia, la seconda su AMD...
Della serie: sono aumentate le complessità dei calcoli e quindi anche degli algoritmi che li eseguono, che non girano quasi mai nello stesso modo tra le varie architetture. Ad esempio, un programmatore "pigro" potrebbe forzare sempre l'accesso ai dati non in L0-L1 verso la memoria esterna. Questo approccio girerebbe bene su Nvidia ma non su AMD, in quel caso serve che il driver "intercetti la chiamata" e faccia in modo da avere il dato disponibile nella cache L3... Insomma, le GPU stanno diventando sempre più come le CPU con annesse diversità di risposta ai vari workload.