ich arbeite jetzt seit zwei Jahren mit Delphi und opengl zur Visualisierung wissenschaftlicher Ergebnisse. Dank der tutorials auf delphigl hier können sich die Ergebnisse mittlerweile auch sehen lassen.
Allerdings habe ich jetzt ein problem. Bzw. nicht ich, sondern andere User.
Ich habe die Software auf einem Rechner mit Ati-Grafikkarte (momentan HD2400pro) entwickelt und getestet. Auf meinem Notebook bzw. Netbook mit Intels GMA 950/900 läuft die Software auch einigermaßen flüssig, auf Rechnern mit nvidia-Graka wird es eine Ruckelorgie.
Problem 1 (intel und nvidia):
Ich habe zwei openglpanels und wechsle beim Rendern zwischen den Rendercontexts. Auf der ati-Graka läuft das absolut problemlos, auf den intel und nvidias gibt es da ein merkwürdiges Ruckeln in beiden Panels.
Problem 2 (nvidia):
Einfach grottenlahm, egal was gemacht wird.
Mir ist klar, dass eine ferndiagnose ohne Code nicht so einfach möglich ist. Deshalb auch nur die frage ob da jemand hier schon ähnliche Erfahrungen gemacht hat.
Ich arbeite hauptsächlich mit Primitiven (quads und lines) und displaylisten, also eigentlich nichts grafikkartenspezifisches.
Wäre wirklich sehr dankbar wenn jemand einen tip/ Hinweis hätte.
Sind deine Texturen quadratisch und haben eine Kantenlänge die einer 2er Potenz (also 256x256, 512x512, 1024x1024, ...) entspricht? Wenn das nicht der Fall ist schalten einige Karten in den Softwaremodus.
Zitat:
Ich arbeite hauptsächlich mit Primitiven (quads und lines) und displaylisten, also eigentlich nichts grafikkartenspezifisches.
Die Frage ist was der Treiber aus der Displayliste macht.
Es wäre auch interessant zu wissen um welche Nvidia-Karten es hier geht und wie viel zu so renderst, also Polygon-Zahl.
Nein, das tritt auch auf wenn ich gar keine Texturen verwende.
Habe das problem von mehreren Anwendern geschildert bekommen die nvidia-Grakas drinnen hatten. Hier nachvollziehen kann ich es nur auf einer geforce m8400 und eine Quadro FX570. Andere rechner mit nvidia Grakas stehen mir leider nicht zur Verfügung.
Bei den Programmen handelt es sich u.a. um einen Geländeeditor. Da wrd zu Beginn nur das Grundraster gezeichnet, also ca 600 Linien (das gebiet hat maximal 300x300 felder). Selbst da fängt z.B. der Laptop mit der geforce m8400 (2.2GHz Dualcore mit 4GB ram) schon das Ruckeln an während selbst ein Netbook das noch problemlos rendert.
Was mich eben so verwundert ist, dass ich mit der HD2400Pro auch bei sehr hohen Polygonzahlen flüssige Frameraten bekomme während es sowohl auf der m8400 als auch auf der Quadro FX570 nur noch ruckelt.
Aber wenn das sonst keiner so erlebt, dann liegt es wohl eher an meiner Programmierkunst denn an nvidia
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Nutzt du evtl. die Selektionsfunkationalität von OpenGL? Die ist seit einigen Treiberreleases auf NVidia extremst langsam und sollte daher gemieden werden. Ansonten alle OpenGL Fehler parsen und sehen ob ein solcher auftaucht der die Anwendung verlangsamt bzw. in den Softwaremodus zwingt.
Allerdings da es ja auf deiner ATI Karte flüssig läuft kannst du eigentlich keine groben Schnitzer gemacht haben. Vielleicht stellst du dein Programm mal online, dann kann mal jemand hier mit Nvidia-Karte das ausprobieren. (ich kann es nicht testen, habe kein Delphi/Windows )
Och, ne stupide Exe kann man auch mit Linux und ohne Delphi testen. Jo, stells, mal irgendwann online.
_________________ Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut. Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’. Und du schaust mich an und fragst ob ich das kann. Und ich denk, ich werd' mich ändern irgendwann. _________________Farin Urlaub - Bewegungslos
Online stellen geht leider momentan nicht da mein Chef nicht will, dass die unfertige Software im Netz rumgeistert (auch wenn das Programm später sowieso freeware ist).
Allerdings benutze ich tatsächlich die Selektionsfunktionalität von opengl.
Werde nacher gleich mal ausprobieren ob es tatsächlich daran liegt.
Vielen Dank schonmal für die Hilfe!
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Im Delphi-Forum hatte sich auch schon mal jemand darüber beklagt, dass sein gezeichnetes urplötzlich extrem Langsam wurde. Also sobald er eine Linienstärke > 1 verwendet hatte. Allerdings hatte er auch deutlich mehr Linien als 600. Gut sein Zeichnen dauerte anschließend aber auch so etwas um die 2 Sekunden.
Ansonsten würde ich das Zeichnen auf einem der beiden Panels mal deaktivieren. Und schauen wie sich das dann verhält. Bzw auch mal messen wie viele FPS du auf den jeweiligen Panels bekommst. Also im Vergleich zu 1 Panel vs. 2 Panels. Auch mal schauen was da die CPU Auslastung (UserTime/KernelTime) auf den entsprechenden Systemen sagt. Ich vermute du hast einen dauerhaften Renderloop eingebaut. Ich habe es schon mal erlebt, dass ein RenderLoop ein System nicht zu 100% ausgelastet hat sondern nur zu 5. Bzw könnte es auch sein, dass du zwar anständig fps erzielst aber durch andere Faktoren die Animationsberechnung gestört wird und es entsprechend ruckelig aussieht.
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Benutze anstatt der OpenGL-Selektion einfach mal Farbselektion. Das gibt dann zwar erstmal Probleme mit Antialiasing, aber dann kann man vielleicht schonmal eine Problemquelle ausschließen. OpenGL-Selektion ist bei den NVidia-Windows-Treibern längst rausgeflogen.
Ansonsten: Benutzt du Multithreading? Mein aktuelles Projekt hat unter Windows das Problemchen, dass es ein paar frames rendert (mit gut 80fps) und dann stehen bleibt - von 2-3 Sekunden bis hin zu einigen Minuten. Unter Linux habe ich solche Probleme nicht, und da entwickle ich, könnten jedoch treiberspezifische Probleme sein.
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.