Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 14, 2025 19:29

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 24 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Di Sep 27, 2005 21:23 
Offline
DGL Member

Registriert: Di Sep 27, 2005 21:15
Beiträge: 17
Hallo dGLer,

die Tuts haben mir ja schonmal einen netten Einstieg in OpenGL ermöglicht (Danke dafür! ;) ), aber nun hab ich dennoch ein Problem.

Code:
  1. createRenderingContext(
  2.           DC,
  3.           [opDoubleBuffered],
  4.           32,
  5.           24,
  6.           0, 0, 0,
  7.           0);


createRenderingContext läd bei mir meistens verdammt lange (zwischen 10 und 20 Sekunden) und ich hab schon einiges ausprobiert. Wenn ich jedoch gerade aus Delphi heraus kompiliert habe, das Formular schließe und sofort wieder kompilieren lasse geschieht dies in Null komma nix. An der Grafikkarte sollte es nicht liegen, da ich sowohl den neuesten als auch einen älteren Treiber für die Karte getestet habe und auch mit anderen OpenGL-Anwendungen keine Probleme hab. Ich hab auch schon das VCL-Template kompilieren lassen - mit dem gleichen Ergebnis!

Vielleicht hat ja jemand von euch eine Idee.

Danke im Vorraus für jede Antwort.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 00:25 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das is auf alle Fälle strange... mindestens ;)

Gib mal paar Infos zur Hardware (Graka, CPU, RAM) und zur Software (Delphi Version?). Was sagt dein Taskmanager? (Prozessorlast)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 09:59 
Offline
DGL Member

Registriert: Di Sep 27, 2005 21:15
Beiträge: 17
Hier meine Daten:
    Amd Athlon XP 2600+
    GeForce FX5200
    768 MB Ram
    Win2000 Prof.
    Delphi 7 Personal

Das mit der Prozessorlast ist auch sehr komisch. Da schlägt nämlich gar nichts aus!
Auch wenn es kompiliert ist habe ich gerade mal standardmäßige 2 - 5%, anstatt wie im Tutorial beschriebene 100% Auslastung. Die FPS pendeln dabei um die 100 (Bei Scenen wie in den ersten Tuts beschrieben - also eher mikrig :) )


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 10:07 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Geh mal im Einzelschritt durch die Funktion und schau mal nach welcher Befehl so lange dauert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 10:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich bezweifel mal stark, dass es direkt an CreateRenderContext liegen wird. Ich denke mal eher es ist irgendetwas drumherum oder so. Der Code in CreateRenderContext ist ein Standardcode. Das wird überall so gemacht und funktioniert eigentlich immer.

Hast du es im Debugger festgestellt, dass er so lange benötigt oder nur wärend er läuft? Reagiert die Anwendung dann noch oder steht sie komplett still. Wo Renderst du denn? OnIdle, Timer oder OnPaint des Forms?

Wenn OnIdle, dann denke ich, dass du das Done := False; vergessen hast! Das dürfte auch die geringe Last erklären. Sollte es das nicht sein können wir dir ohne detailierte Angaben, was du genau machst, nicht sagen was das Problem ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 10:19 
Offline
DGL Member

Registriert: Di Sep 27, 2005 21:15
Beiträge: 17
Zitat:
Geh mal im Einzelschritt durch die Funktion und schau mal nach welcher Befehl so lange dauert.


- edit -

PixelFormat := ChoosePixelFormat(DC, @PFDescriptor); ist der offensichtliche Haken.

- edit -

Es scheint aber doch ein Hardware oder Treiberproblem zu sein. Ich hab mir mal eine der Demos aus dem Projekt-Forum runtergeladen, die auch so lange dauerte bis es los ging.


Zuletzt geändert von 7eddi am Mi Sep 28, 2005 11:01, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 10:58 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Dann step mal bitte rein und schau mal wo es da drinnen hängt. Oder mal auf nem anderen System ausprobieren. Also Exe auf nem anderen Rechner starten oder so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 11:02 
Offline
DGL Member

Registriert: Di Sep 27, 2005 21:15
Beiträge: 17
sry, hatte das falsch verstanden.

Bei PixelFormat := ChoosePixelFormat(DC, @PFDescriptor); dauerts so lange. Frage mich nur was die Funktion macht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 12:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Anhand der oben ausgewählten Kriterien wählt sie aus einer Liste mit Schätzungsweise 200 Formaten das Passende herraus und liefert dessen Index zurück. Falls das die Frage war. ;-) Warum das so lange dauert kann ich dir allerdings nicht sagen.

Sonst tippe ich allerdings auch darauf, dass es ein Treiber problem ist. Auf die Geschwindigkeit der Funktion hat man recht wenig Einflussmöglichkeiten. Was man normal auch nicht haben muss.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 20:17 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Oder is vielleicht deine Graka kaputt? ... naja ... wollen wir doch nicht hoffen... jedefalls bist du der erste der hier sowas hat... :(

Poste mal was OpenGl dir bei "glGetString" liefert (für jeden Parameter bitte).

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Sep 28, 2005 21:22 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Aber das Pixelformat wird doch nur einmal ausgewählt.? Oder irre ich mich da? Offensichtlich wird aber bei jedem Rendern das Programm von einer Funktion aufgehalten. Also kann das mit dem Pixelformat höchstens für den langen Start verantwortlich sein....

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 29, 2005 08:05 
Offline
DGL Member

Registriert: Di Sep 27, 2005 21:15
Beiträge: 17
glGetString:
Code:
  1. GL_VENDOR: "NVIDIA Corporation"
  2. GL_RENDERER: "GeForce FX 5200/AGP/SSE/3DNOW!"
  3. GL_VERSION: "1.5.2"
  4. GL_EXTENSIONS: "GL_ARB_depth_texture GL_ARB_fragment_program ... WGL_EXT_swap_control" (Soll ich alle Extensions posten?)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 29, 2005 09:55 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ne ne ist schon okay. Ich denke mal Flash wollte nur herrausfinden ob dein OpenGL Treiber überhaupt angezogen wird oder ob das alles in Software läuft.

Was mich auch ein wenig irritiert ist die Tatsache, dass du lediglich 2-5 % CPU-Last bekommst. Da noch mal die Frage. Womit renderst du denn? Timer, OnIdle. Bei OnIdle muss done aus False gesetzt werden. Oder falls Timer, dann könnte dabei auch der Wert des Timers zu hoch sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 29, 2005 10:47 
Offline
DGL Member

Registriert: Di Sep 27, 2005 21:15
Beiträge: 17
Mit OnIdle. Wie gesagt dauerts bei anderen Anwendungen und Templates, die nicht von mir sind, auch so lange - daher tippe ich mal auf Außerdelphische-Probleme ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 29, 2005 12:13 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Delphi ist doch sowieso über jeden Zweifel erhaben! ;-)

Das bezog sich aber eigentlich darauf, weil du etwas von 2-5% CPU Last gesagt hattest. Was bei On Idle darauf schließen lässt, dass done vergessen wurde. Wenn es lediglich bei dir länger zum Starten braucht, dann ist das ne Sache mit der man durchaus leben kann. Auch wenn sie ziemlich ärgerlich ist. Aber wenn die Anwendung generell nur 5 % ihres Potential entfalten kann, dann ist das nicht akzeptabel. Sehe ich jedenfals so.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 24 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]