FPS Speedtest, Bremse und warum hängt sich das Programm auf

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Garfield

Betreff: FPS Speedtest, Bremse und warum hängt sich das Programm auf

BeitragSo, Apr 18, 2004 13:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe in einem früheren ausführlichem Posting über FSP Bremse vs. Speedberechnung einen Code gefunden, den ich in meinen FPS Speedtester eingebaut habe. Leider hängt sich das Programm immer auf, bzw. es hängt offensichtlich in einer Endlosschleife in der Zeile

Delay time4 ;delay execution

Ich verstehe das nicht, alle 10 Versuche läuft das Programm einmal...

mit FPS zähle ich die Anzahl der FLIPS´s pro Sekunde, nicht die Anzahl der Bildberechnungen

BlitzPlus 1.35 Runtime 1.37

Code: [AUSKLAPPEN]

;           FPS Tester
;           BlitzPlus 2004 Winfried Rothenberg
Graphics 800,600

Global FPSTimer
Global FPSRate = 25
Global FPS

 fRate = (1000/25) ;*set second number to desired frame rate*


Global FPSZeit = 1000/FPSRate

FPSZeit = FPSZeit -1

Timer = MilliSecs()
FPSTimer = MilliSecs()


While Not KeyHit(1)

time1 = MilliSecs() ;time at start of processing loop


If MilliSecs() - timer >999
FPSAnzeige = FPS
Timer = MilliSecs()
FPS = 0
EndIf

;Rechenprogramm(5)  ; zum Leistungstest




   ;If MilliSecs() - FPSTimer > FPSZeit
   Text 200,100,MilliSecs() - FPSTimer
      Text 200,200,"FPS = "+FPSAnzeige
   Text 200,400,time4
      Flip
      Cls
      FPS = FPS+1
      FPSTimer = MilliSecs()
   ;End If
   

time2 = MilliSecs() ;time at end of processing loop
time3 = time2 - time1 ;number of miiliseconds to process loop
time4 = fRate - time3 ;number of milliseconds to delay each processing loop to achieve dynamically accurate framerate


Delay time4 ;delay execution



Wend

End

Function Rechenprogramm(Anzahl)

For z = 1 To Anzahl

   For x = 1 To 1000000
   Next

Next

End Function


End

Abrexxes

BeitragSo, Apr 18, 2004 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm?

Bei mir läufts einwandrei.

BlitzView-B3D 1.86.

cu Linux

Garfield

BeitragSo, Apr 18, 2004 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
In BB2D läufts auch immer einwandfrei, nur in BPlus gehts maximal 1x dann immer "aufhäng" Sad

Abrexxes

BeitragSo, Apr 18, 2004 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht wird ein Befehl benutzt der in + Schwierigkeiten macht.
Ich habe DELAY im Verdacht.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Apr 18, 2004 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab das in der B+Demo getestet und es läuft
[BB2D | BB3D | BB+]

Abrexxes

BeitragSo, Apr 18, 2004 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
In dieser Zeit kann kein Befehl ausgeführt und keine Grafik ausgegeben werden. Um eine bestimmte Programmgeschwindigkeit zu erzwingen, ist dieser Befehl ungeeignet - benutze besser CREATETIMER.

Aus der Online-Hilfe,vielleicht hängst da!

Garfield

BeitragSo, Apr 18, 2004 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Verdacht habe ich auch, daß Windows in einen undefinierten Zustand gerät, wie gesagt, alle 10 Starts funktioniert das Programm, in BB2D gehts immer.

Ich habe ja immerhin im Hintergrund so einige Progs in Windows laufen, wie z.B. T-DSL Manager, AntiVir....

irgendwas ist da in Plus faul......

Was ich eigentlich will, darum das UrProgramm mit dem FPS Test, die Grafikausgabe mit FLIP soll nur in einer bestimmten Framerate erfolgen.
deswegen die If Then Bedingung, die jetzt ausge"REM"´t (Wink ist

Ich möchte, das nur alle 40 ms (FPS 25 1000/25) in die FLIP Routine gesprungen wird

Garfield

BeitragDi, Apr 20, 2004 7:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem DELAY- Bug ahbe ich noch nicht herausbekommen.

Ich habe mein ursprüngliches Programm etwas geändert:
Code: [AUSKLAPPEN]

If MilliSecs() - FPSTimer > FPSZeit
   Diff = MilliSecs() - FPSTimer
   FPSTimer = MilliSecs() ;      <--------------------------- verschoben!!
   Text 200,100,"DeltaT= " + Diff
      Text 200,200,"FPS = "+FPSAnzeige
   Text 200,400,"time4= "+time4
      Flip
      Cls
      FPS = FPS+1
      
   End If




jetzt gibt er exakt 25 Frames aus

demnächst mehr darüber


Hier komplett:
Code: [AUSKLAPPEN]
;           FPS Tester
;           BlitzPlus 2004 Winfried Rothenberg
Graphics 800,600

Global FPSTimer
Global FPSRate = 25
Global FPS

 fRate = (1000/25) ;*set second number to desired frame rate*

Global time1
Global time2
Global time3
Global time4

Global FPSZeit# = 1000/FPSRate

FPSZeit = FPSZeit -1


Timer = MilliSecs()
FPSTimer = MilliSecs()


While Not KeyHit(1)

time1 = MilliSecs() ;time at start of processing loop


If MilliSecs() - timer >999
FPSAnzeige = FPS
Timer = MilliSecs()
FPS = 0
EndIf

;Rechenprogramm(5)  ; zum Leistungstest




   If MilliSecs() - FPSTimer > FPSZeit
   Diff = MilliSecs() - FPSTimer
   FPSTimer = MilliSecs()
   Text 200,100,"DeltaT= " + Diff
      Text 200,200,"FPS = "+FPSAnzeige
   Text 200,400,"time4= "+time4
      Flip
      Cls
      FPS = FPS+1
      
   End If
   

time2 = MilliSecs() ;time at end of processing loop
time3 = time2 - time1 ;number of miiliseconds to process loop
time4 = fRate - time3 ;number of milliseconds to delay each processing loop to achieve dynamically accurate framerate


;Delay time4 ;delay execution



Wend

End

Function Rechenprogramm(Anzahl)

For z = 1 To Anzahl

   For x = 1 To 1000000
   Next

Next

End Function


End


[/code]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group