Paro ha scritto:Ho la sensazione di star per scrivere qualche castroneria, ma oh, ormai pure i "grandi" portali di informatica non si fanno problemi a pubblicare articoli da ferramenta, indi per cui sparo anch'io a zero nei commenti.
Le castronerie si sparano con le risposte, non con le domande
Paro ha scritto:Ma i vincoli hardware nei tier 1 e 2 come e chi si suppone debba gestirli?
Sta allo sviluppatore interrogare la periferica per capire quali siano i suoi limiti fisici e software.
Paro ha scritto:Forse ho frainteso, ma mi par di capire che se una gpu "è collocata" in un certo tier, lì ci rimane a vita indipendentemente dal driver e software che la utilizzano. Se solo amd può vantare un supporto a tier 3, significa che uno sviluppatore, volendo che il proprio software giri sia su hardware nvidia che amd, deve ragionare entro i limiti di un tier 2, ovvero tener conto delle limitazioni hardware previste?
Sì, i tier del resource binding sono fissi, è stata praticamente la prima cosa stabilita e ormai i driver riportano la situazione finale al riguardo da tempo. Per altre funzionalità invece non è ancora detta l'ultima parola, specialmente per le ultime introdotte.
Gli sviluppatori devono tener conto dei tier dell'hardware che vogliono supportare, la cosa è piuttosto semplice da gestire: una volta interrogato l'hardware basta usare ad esempio dei percorsi condizionali diversi se si sa che il proprio software può sforare i limiti di un tier. Per le GPU AMD non sarà necessaria alcuna modifica, il che potenzialmente permette di diminuire la complessità del codice da eseguire se il programma gira sotto GPU AMD, il che può comportare ulteriore minor overhead (sovraccarico) della CPU e della GPU.
Paro ha scritto:Alla luce di questo, si potrebbe dire che la comodità e la libertà data da tier 3 è un lusso che gli sviluppatori non possono ancora permettersi, dovendo (per forza di cose mercato) supportare anche hardware nvidia?
Oppure non ho capito una fava e sono le API direttamente a gestirsi il binding più o meno efficientemente ed a seconda dell'hardware e allo sviluppatore non è data alcuna responsabilità tecnica?
Vedi sopra.
Per il resto le nuove API non gestiscono praticamente nulla, fanno quasi esclusivamente da tramite fra il programma ed il driver video. Con D3D11 le versioni precedenti invece era quasi tutto gestito automaticamente (entro i limiti supportati dall'API).
Paro ha scritto:I "feature level", sono puramente indicativi come mi par di capire? Ma come fa uno sviluppatore a sapere quali feature sono presenti su un hardware? O meglio, come potrebbe sapere se una gpu alla fine della fiera supporta le funzionalità di cui abbisogna?
I feature level sono indicativi nel senso che servono solo a raggruppare determinate funzionalità in un colpo solo. In pratica sono una comodità per chi sviluppa.
Per capire quale feature level supporta una GPU basta provare a creare
device (l'interfaccia che può essere vista come la rappresentazione virtuale della GPU) con un determinato feature level, se la creazione ha successo la GPU supporta quel determinato feature level, altrimenti no. Iterando in maniera decrescente fra i vari feature level che si vogliono avere alla fine si ottiene una device con il feature level più alto supportato dalle periferica.
Per tutte le altre funzionalità si interroga la device creata.
Paro ha scritto:Personalmente non sappiamo se questa sia orchestrata da una casa in particolare o semplicemente da qualche giornalista un po’ ignorante in materia.
Probabilmente entrambe, la prima aiutata anche involontariamente dalla seconda.
Io ci metto pure l'incompetenza del reparto pr-marketing di AMD.
Parere personale ovviamente.