|
|
16 Settembre 2019 |
Postato da: Seiya |
Amiga e GPU (e un accenno al mito della FPU nei giochi) |
|
Si parlava in qualche topic nella speranza di avere nuove schede per Amiga dotate di slot PCI/AGP per mettere una GPU per sgravare il processore e favorire le prestazioni in quei giochi e programmi che fanno uso dell'accelerazione 3D.
Il 3D su Amiga è sempre stato la sua nemesi perchè tutte le tre fasi della generazione di scene 3D sono sempre state a carico del processore che ha una potenza elaborativa dal primo modello all'ultimo non adatto a questo scopo e anche per il fatto di essere basata sul planare che non è proprio adatto a questo obiettivo e quindi la maggior parte dei motori 3D erano creati con il c2p via software che fa perdere cicli processore su alcuni di questi veramente lenti.
Basta guardare i vari giochi che usano una grafica vettoriale sia trasparente che solida che a seconda della complessità mettevano in crisi l'Amiga. Nel corso degli anni qualche sviluppatore ha cercato di arginare ulteriormente il problema creando nuove istruzioni matematiche con risultato qualche volta positivi, ma erano soluzioni software e quindi mai una cosa definitiva.
La creazione di scene 3D è molto complessa, più il processore è potente, più velocemente vengono eseguite con conseguenza di prestazioni migliori e su Amiga il problema è quello. I vari modelli che sono usciti hanno ogni volta un miglioramento architetturale, ma rimangono comunque legati ad un sistema che non è adatto a questo tipo di grafica e anche con il più potente processore su Amiga, il 68060 le cose non sono andate meglio e in diversi casi le prestazioni in giochi 3D pesantissimi erano paragonabili al 68030 a 50 Mhz (è un discorso da fare con calma più avanti).
Prima dell'avvento delle gpu le fasi di creazione di una scena 3D sono gestite interamente dal processore e più potente era e più frame al secondo potevate vedere sullo schermo. La FPU non era usata nei giochi nemmeno su PC quando c'era MS-DOS, a parte rari titoli, che comunque è difficile verificare il contrario. La FPU hanno iniziato ad usarla quando sono arrivate le prime GPU che eseguivano istruzioni e algoritmi in virgola mobile. Prima delle GPU i calcoli erano tutti a carico della CPU.
Le prime GPU non si prendevano carico interamente della creazione della scena 3D, ma gestivano la rasterizzazione e solo in quelle più recenti anche il setup dei triangoli. Il calcolo delle geometrie e delle luce rimaneva a carico della FPU e quindi era necessario averne una molto potente. Come del resto è oggi. Infatti spesso sentite parlare di colli di bottiglia (cpu limited e gpu limited).
Amiga di nuovo non è l'hardware ideale per una GPU anche per un altro motivo: il bus.
le schede con una gpu per le scene 3D sono su PCI, AGP e PCI-Xpress. La prima è un bus molto lento perchè teoricamente la sua banda è di 132 MB/s, ma in realtà è sui 70 MB/s perchè nelle schede video PCI, la GPU gestiva solo la rasterizzazione dell'immagine, mentre tutto il resto era a carico del processore e il trasferimento delle coordinate e delle caratteristiche dei triangoli dalla memoria di sistema alla scheda 3D era molto lento. E di nuovo guardatevi di video delle Voodoo 3 PCI su Amiga.
L'AGP era più veloce, ma il problema è che doveva essere gestito dal sistema operativo e se non lo era era visto come un PCI a 66 Mhz e quindi di fatto annullava ogni sua caratteristica. Su Amiga non esiste nessuna soluzione AGP sul 68k perchè non è supportato da AmigaOS in nessuna versione.
Dato che GPU e processore collaborano se la prima è molto più potente della seconda c'è il cpu limited: una radeon 9200 su un Pentium 200 fa 100 punti, mentre su un Pentium 3 fa 1000 punti.
Se il processore è più potente della gpu c'è il gpu limited: una radeon 9200 su un Pentium 3 fa 1000 punti, su un Pentium 4 ne 300.
Per un Amiga 68k ci vuole una GPU non porti a nessun collo di bottiglia e quindi in linea con la potenza di quell'hardware.
Per quanto riguarda la FPU è un po' un mito sopratutto su Amiga perchè non si è mai usata per accelerare i giochi o aumentare i frame al secondo, ma per mantenerli con un dettaglio e un realismo maggiore.
In Falcon 3.0 che, a parte Quake, è l'unico ad usarlo e in maniera diversa: la fpu in questa simulazione serve per mantenere il frame rate costante aggiungendo grafica, ma anche per migliorare il realismo del volo. In questo gioco la fpu attiva uno dettaglio nascosto. Dato che non si può provare questa impostazione con o senza FPU il tutto rimane un po' teorico.
Quake è un caso a parte perchè tutto il codice è in virgola mobile e anche in questo caso non esistendo una versione x86 senza FPU non si saprà mai quanto incide questa pesantissima dipendenza da questa unità.
Su amiga 68k l'uso della FPU la vedete anche nella demoscene e in vari giochi, ma qui la scelta è del compilatore che non riconoscono lo 060 e non possono ottimizzare per il set istruzioni diverso che include. Dato che le versioni non FPU su 060 inizialmente erano lentissime, la versione FPU erano più veloci e anche perchè molti sviluppatori riuscivano a compensare il codice integer scritto male con quello più efficace in virgola mobile.
Modificato il 17/09/2019 alle ore 19:16:39
|
|
Utenti Online |
|
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 1 registrati - AfAOne -
e 109 non registrati
|
|
|
Benvenuto all'ultimo utente registrato: zulu |
|
|
Buon Compleanno a Yuppis Revange - jpp - pocketclouds - |
|
|
|