Hmm, anscheinend kann man ja mit irgendeinem NVidia Treiber ebenfalls ein proprietäres glSlang aktivieren - kann mir da eventuell jemand einen Tipp geben wie?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Du brauchst entweder den 56.53 oder 56.54er Treiber, den es anscheinend nach kostenloser Registrierung in der Entwicklersektion von Nvidia gibt. Danach musst du noch ein paar Registryeinträge tätigen, die es hier einzusehen gibt.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Hab noch ein wenig an der Anwendung gewerkelt und ihr auch nen Benchmark-Modus sowie neben dem Torus auch ne Fläche verpasst. Den Download gibts hier (600KByte). Quellcode gibts aufgrund der geringen Änderungen nicht.
Mit "+" könnt ihr zwischen der einfachen Fläche und dem Torus wechseln, während ihr mit "d" den Benchmarkmodus startet, der dann alle 3 Renderpfade durchgeht (glSlang zweimal, einmal normal und einmal offset). Am Ende seht ihr dann einen Dialog mit den Frameraten für jeden Renderpfad, bei mir siehts so aus :
(Links:Torus, Rechts:Quad, auf Radeon9700, mit 4xAA und 16xAF)
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also ich finde die Anwendung sehr witzig. Das Ergebniss des Benchmarks übrigens auch. Beim Torus scheint das ARB_Programm schneller als die Fixed Function zu sein. Aber ich glaube mal sehr stark, dass das auf meinen Prozessor (Duron 1,2 GHz) und die höhere Last auf dem Bus zurückzuführen ist. Achja mein Karte ist die Radeon 9500 Pro. Ebenfalls mit 4xAA und 16xAF.
Habe es auch gerade mal ohne AA und AF ausprobiert. Das finde ich sogar noch seltsamer. Ach seht selbst. Beim Quad waren die beiden ersten schneller und beim Torus sogar glSlang.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Wieso gehen nur maximal 3 Attachments. Hmmm.
Dateianhänge:
Dateikommentar: Torus ohne AA und AF torus_ohne.jpg [ 10.69 KiB | 6529-mal betrachtet ] Dateikommentar: Quad ohne AA und AF quad_ohne.jpg [ 10.7 KiB | 6529-mal betrachtet ]
Bei mir kommt dieses raus (Athlon XP 2600+, 512 MB Ram, Powercolor Radeon 9600 Pro EZ):
Fixed: 357
Vp/Fp: 296
glslang: 147
(Werte jeweils wenn das Light ganz oben ist)
_________________ Es sind immer die guten, welche zu früh von uns gehen müssen... Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net Neu! Ein großer Teil der Demos nach Kylix übersetzt!
So hier ist die Register Combiners variante für GeForce3/4 karten.
In einem pass Diffuse+Specular
Sieht nich so gut aus wie die ARB Variante, aber schon besser als die normale fixed funktion, liegt daran das ich nich so viel ahnung von shader hab, wobei ich aber weiss brauch man 2 pass für specular normalerweise.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Schaut recht gut aus und läuft auf meinem Zweitrechner mit GF4-Ti4400 mit 320 FpS sogar noch recht schnell. Ist aber irgendwie fast schon schmerzhaft zu sehen dass glSlang auf ner modernen Karte ein gütes Stück langsamer ist als die RegisterCombiner (ist im Endeffekt wohl auf die Tatsache zurückzuführen dass RCs weniger flexibel sind).
Mich würde jetzt allerdings brennend mal ein komplettes Ergebnisbild von einer Top-End GeForceFX (5900/5950) mit glSlang-Treibern interessieren. Dort könnte man dann ja alle Pfade vergleichen.
Auf der GFFX ist der Unterschied bestimmt noch schlimmer. Vielleicht könnte man ja auch noch NV_fragment_program austesten. Da kann man bei jedem Befehl zwischen drei Genauigkeiten auswählen. Interessant wäre auch noch mal ein Test mit ATI_fragment_shader. Das entspricht ja ungefähr den Register Combiner.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Habe gerade spaßeshalber die Demo mit dem Catalyst 4.2 ausprobiert. Und ich habe irgendwie das Gefühl als ob sie etwas an der Implementation vom glSlang verändert haben! Abgsehen davon, dass glSlang knapp 50% schneller ist als mit dem 4.1er sah das Bild doch ein wenig ungewohnter aus. Seht einfach selber.
PS: der Rest ist knappe 10% schneller. Auch in anderen Anwendungen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Der Fehler ist mir auch direkt aufgefallen und das Problem ist selbiges dass ich in den News beschrieben habe. Normalerweise werden die im Shader deklarierten sampler anhand ihrer Deklarationsreihenfolge den entsprechenden TMUs zugeordnet, was im Cat 4.2 wohl nicht mehr korrekt funktioniert.
Habe deshalb bereits gestern Abend eine aktualisierte Version (+Quellcode) hochgeladen. Der Link ist der selbe, und bei mir sind die Frameraten im glSlang-Pfad knapp 20% besser als beim Catalys 4.1.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Könnte die Demo mal bitte jemand mit ner ATI-Karte und neuen Treibern testen? Mir ist zufällig aufgefallen dass der glSlang-Renderpfad mit Cat4.9 (evtl. schon 4.8 ) nicht mehr funktioniert, was ich per Quellcode darauf zurückführen kann dass bestimmte Parameter jetzt einfach keine Auswirkung mehr haben (z.B. ambient). Habe dann testweise mal den OpenGL-Part vom Catalyst 4.7 ins Programmverzeichnis kopiert, und siehe da : es geht wieder.
Allerdings konnte ich das Problem nicht herausfiltern, und es scheint auf diese Anwendung beschränkt zu sein. Der selbe Shader (haargenau der selbe) funktioniert in zwei anderen Anwendungen tadellos mit dem neuen Treiber. Was mir dann beim debuggen aber aufgefallen ist : In der Demo hier bekomme ich als Handle für meine glSlang-Programmobjekte nicht wie erwartet fortlaufende niedrige Zahlen (also 1,2, usw.) sondern sehr hohe Zahlen (quasi die Obergrenze des Wertebereiches), aber keine Fehlermeldungen beim Kompilieren der Shaderprogramme. Wie gesagt lassen sich dann allerdings bestimmte Parameter nicht beeinflussen, oder es scheint so. Wenn ich in ambient z.B. 0.2 übergeben, dass dann in meinem Programm mittels glGetUniform zurückhole, bekomme ich auch 0.2. Aber im Shader passiert nix, der Wert wird nicht übernommen, von daher vermute ich einfach mal es liegt am eigenartigen Wert für das Programmhandle. Evtl. kann da mal einer von euch gucken ob das bei ihm auch so ist, und evtl. weiss jemand ne Lösung (ich tippe momentan auf Treiberproblem).
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
Also wie auf dem Screenshot zu sehen läuft glSlang bei mir irgendwie garnicht. Habe Catalyst 4.1 (wo bekomm ich ne neuere her ?) und lasse ne Radeon 9800Pro die Grafik-Arbeit verrichten.
Kapier mal garnicht wieso das bei mir garnicht geht.. ansonsten sind die FPS Ergebnissee ähnlich... obwohl der shader garnichts zu machen scheint. siehe Screenshot:
[edit]
mir fällt grad auf, das ich ja den neuen catalyst 4.10 der auch zuletzt in den news vorgestellt wurde nutze, hatte die null für redundant gehalten aber scheint wohl zu einer 4.10(vier punkt zehn)-version zu gehören ... nutze also quasi n neueren treiber als 4.9 und denke somit, dass ich auf dem screenshot einen nicht funktionierenden glSlang Renderpfad habe wie du (Sascha) es beschreibst. Stimmt das ? Sah das bei dir in der 4.9-er-Version auch so aus ?
[\edit]
Dateianhänge:
Dateikommentar: Man sieht das nix passiert ;( Neu Bitmap.JPG [61.24 KiB]
46-mal heruntergeladen
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Habe doch in dem Posting direkt über deinem geschrieben dass es mit neueren Catalyst-Treibern nicht so läuft wie es soll. Auf der Platte habe ich ne Version bei der es allerdings wieder funzt, die ich bei Gelegenheit mal hochlade.
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.