CPU leak bei SetGraphicsDriver?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

klin

Betreff: CPU leak bei SetGraphicsDriver?

BeitragSo, Sep 05, 2010 2:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,
wollte heute nen Mapeditor machen. Eigenartigerweise ist mir aufgefallen, dass mein Projekt ziemlich geruckelt hatte. Ich wusste zuerst nicht weshalb. Aber also ich in meiner schleife nurnoch Flip und CLS hatte, wars schon komisch. Denn der CPU verbrauch stieg bis zu 50% (dual core) hoch. Nun habe ich herausgefunden, sobald ich SetGraphicsDriver weglasse, alles normal läuft. Aber ansonsten verbraucht CLS am meisten. Hier der Code:
BlitzMax: [AUSKLAPPEN]

SuperStrict

SetGraphicsDriver GLMax2DDriver()

Graphics 640,480

While Not False

Flip
Cls

Wend


Evtl. habe ich da auch einen Fehler. Oder mein PC spinnt. Aber 50% nur wegen dem Grafikbefehl ist schon heftig. Am meisten verbraucht CLS (30%, FLIP:20%).

Ist das ein leak oder sonstiges? Habe die neuste Version 1.41 (seit dem an trat das auf).

THX
MFG
Klin

Falls das hilft:
Windows 7 Ultimate 32Bit
3 GB Ram
1.67 GHZ Dualcore intel Centrino
8600M GS Nvidia
 

KirkZero

BeitragSo, Sep 05, 2010 3:12
Antworten mit Zitat
Benutzer-Profile anzeigen
setz doch mal nen Timer:

BlitzMax: [AUSKLAPPEN]
SuperStrict

SetGraphicsDriver GLMax2DDriver()

Graphics 640,480

Global Frames :TTimer = CreateTimer (60)

While Not False

Flip

WaitTimer (Frames)
Cls

Wend


das sollte den Prozessor erheblich entlassten


EDIT: hmm... zumindest läuft es bei mir mit timer mit ca 1-2% Auslastung, da du aber schon viel länger dabei bist als ich, wirst du Timer wahrscheinlich eh schon kennen und meine Antwort ist dann wohl eher zum lachen.... sorry Embarassed
No Brain, No Pain

Xeres

Moderator

BeitragSo, Sep 05, 2010 3:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie läuft es mit einem der anderen Treiber?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Lunatix

BeitragSo, Sep 05, 2010 8:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei deinem Programm ist das kein Wunder. Wie KirkZero schon vorschlug, liegt das daran, das du keinen Timer gesetzt hast. Denn deine Schleife mit Flip und Cls läuft soschnell sie kann.

Der Timer sorgt dafür, das deine Schleife z.b. nur 60 mal (=60FPS) pro Sekunde läuft.


P.S.: KirkZero, deine Antwort ist eigentlich, nach dem Quellcode zu Urteilen, genau der richtige Wink Gut Aufgepasst =)
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

klin

BeitragSo, Sep 05, 2010 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Es lag in der Tat an meinem Computer... Eigenartigerweise, hatte ich den Timer ja benutzt. Und wenn ich den Timer ALLEINE erstelle, reicht das schon aus Oo

Bei mir war es nur so, sobald ich den Treiber manuell setze und Flip,CLS kahm ins Spiel, lief mein CPU hoch wie sonst was. Ohne Treiber lief es ohne Probleme. Auch ohne Timer Wink

Heute morgen habe ich es einfach nur kompiliert (Diesen code in meiner ersten Post) und sehe da: 1-3% auslastung durch NUR kompilieren. Das ist recht eigenartig, den Timer habe ich erst garnicht eingefügt.

Also lag es anscheinend an meinem OS. Aber eigenartig nur, dass der CPU bei einer Schleife wo weder delay noch Timer ist, momentan nicht hochläuft. Evtl. immer noch ein Fehler im OS...

Trotzdem danke.

THX
MFG
Klin

Thunder

BeitragSo, Sep 05, 2010 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Treiber-setzen:
  • alte BlitzMax-Version -> D3D7Max2DDriver() wird automatisch gesetzt
  • neue BlitzMax-Version -> D3D9Max2DDriver() wird automatisch gesetzt

(wann der Wechsel war, weiß ich nicht...)

Ich bin zwar in Sachen Grafik nicht sehr gut, aber ich nehme an, dein Computer/deine Grafikkarte dürfte Probleme mit OpenGL haben.
Andere Möglichkeit: Bist du sicher, dass du nicht den Timer und "Flip ohne Parameter" (= Flip 1) verwendet hast?

mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit

klin

BeitragSo, Sep 05, 2010 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Das war der 1:1 code. Habe nichts anderes verwendet, außer vorher den timer reingemacht (mit waittimer).

Komisch nur, dass es seit dem Hochfahren funktioniert... Das war bei einem anderen auch mal so gewesen. Aber da half nur die umstellung zu D3D treiber (ansonsten nur 10 FPS o.o).

MFG
Klin

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group