PDA

View Full Version : Multitexturing e problemi con Hercules 9500 Pro


valterc
16-06-2004, 14:27
Buondi` a tutti, in breve cerco di spiegare il mio problema.
Sto sviluppando un applicativo OpenGL. Senza andare sui dettagli di programamzione la situazione e` questa:

Sul mio computer (Pentium IV 1.7, 512Mb Ram, Hercules Radeon 3D Prophet 9500 Pro, Catalyst 4.6, MB Asus P4V800-X, AGP 8x) , un'applicativo (una mesh con una texture) gira a ~139 FPS, lo stesso con due textures gira a 12 FPS :( .

Ho perso dei giorni per capire se era un qualche problema legato al codice da me scritto fino a quando ho provato a far girare i due programmi su altri computer. Su Radeon 8500 ho 36 FPS con 1 tex e 15 con 2. Sul mio laptop, con una GeForce Go, girano pressoche` uguali....

Ora, l'idea e` se qualcuno con una 9500 Pro puo` provare a far girare i due programmi e a comunicarmi i risultati.

Il tutto sta in http://www.science.unitn.it/~valter/GL/multitex_EXE.zip

Ovviamente, se qualcuno ha qualche idea del perche` succede questo...

Grazie in anticipo.

KenMasters
16-06-2004, 18:28
è normale che la 9500 vada come una lumaca in multi, ha una sola texture unit!

shodan
17-06-2004, 10:40
Originariamente inviato da KenMasters
è normale che la 9500 vada come una lumaca in multi, ha una sola texture unit!

No affatto... avendo una sola TMU ma dovendo applicare 2 texture per pixel si può ragionevolmente aspettarsi un dimezzamento delle permormance, ma non certo che ci sia un calo del 90% delle stesse (come nel caso del nostro amico...).

Comunque quando torno a casa provo con la 9800PRO.

CIAO! :)

valterc
17-06-2004, 11:50
In effetti, a parte che glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &maxTU); mi risponde 8 (ovvero "pensa" che la scheda abbia 8 texture units); se io disegno 2 volte la stessa mesh (~ 500000 vertici) ottengo ~70FPS (piu` che ragionevole), il che mi fa pensare che c'e` qualcosa che non funziona. Le estensioni di multi-texturing sono state "inventate" proprio per evitare il 2-pass rendering...

shodan
17-06-2004, 18:48
Originariamente inviato da valterc
In effetti, a parte che glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &maxTU); mi risponde 8 (ovvero "pensa" che la scheda abbia 8 texture units); se io disegno 2 volte la stessa mesh (~ 500000 vertici) ottengo ~70FPS (piu` che ragionevole), il che mi fa pensare che c'e` qualcosa che non funziona. Le estensioni di multi-texturing sono state "inventate" proprio per evitare il 2-pass rendering...

Già.. infatti il massimo numero di texture per rendering pass dell'R300 è pari a 8 ;)

CIAO! :)

shodan
17-06-2004, 22:23
Ciao,

Ho provato il tuo programma... innanzitutto complimenti, non dev'essere banale realizzarlo. ;)

In effetti però è strano il comportamento con due texture: faccio solo 19-20fps, mentre con una singola texture faccio 198-200fps.
Il tutto con un Barton 2500@2153Mhz e una Radeon 9800PRO.

Il fatto che con una 8500 gira a 15fps potrebbe in effetti comprovare che ci sono dei problemi nell'applicazione di due texture da parte di una scheda con una singola TMU per pipe (la 8500 ha 4 pipeline ma con 2 TMU ognuna, quindi l'hit prestazionale che dovrebbe subire passando da 1 a 2 texture per pixel dovrebbe essere ridotto...).

Purtroppo però non ho altre idee... mi spiace.

CIAO! :)