Huge slowdown on Pentiums.

Blitz3D Forums/Blitz3D Bug Reports/Huge slowdown on Pentiums.

Hi!
I've been asking this before, but didn't recieved any reply, how to solve this problem.
I have noticed vary strange thing, my games runs very slow on pentium processors.
I think it is because of small meshes. Zero sized meshes.
Here is small test code:

Graphics3D 640,480,16,1    
    
Const UPS=60    
    
ModelGlobal = CreateSphere()    
HideEntity ModelGlobal    
    
Type test    
 Field Model    
End Type    
    
For i=1 To 1000    
 E.test = New test    
 E\Model=CopyEntity (ModelGlobal)    
 Size#=0 ;;try to change it to 1 or 0
   
 ScaleEntity E\Model,Size,Size,Size    
 PositionEntity E\Model,Rnd(-100,100),Rnd(-100,100),Rnd(-100,100)    
Next    
    
    
cam=CreateCamera()    
PositionEntity cam,0,0,-200    
    
l=CreateLight()    
    
period=1000/UPS    
time=MilliSecs()-period    
    
Repeat    
 Repeat    
  elapsed=MilliSecs()-time    
 Until elapsed    
 ticks=elapsed/period    
 tween#=Float(elapsed Mod period)/Float(period)    
     
 For k=1 To ticks    
  time=time+period     
  If KeyHit(1) End    
  UpdateWorld     
 Next    
    
   
     
 RenderWorld    
   
   
 frames=frames +1   
     If MilliSecs()-render_time=>1000 Then FPS=frames : frames=0 : render_time=MilliSecs()   
 Text 0,0,"FPS :"+FPS   
   Text 0,20,"Tris:"+TrisRendered()   
 Flip 0    
    
Forever    


set Size#=1 and look at results.
I think on the Athlons it will be normal(with 0-a lot fps, with 1 - less fps). But who has Pentium will recieve strange results.
Here are some results from last test:
Pentium 4, 2.4 GHz, intel 845 PE Motherboard, 1.5 GB RAM, Geforce 6800, Windows XP sp2, direct x 9

size#=0 ; results - fps = 6, tri = 0
size#=1 ; results - fps = 92, tri = 218848

An interesting bug there


Size=0 FPS=5
Size=1 FPS=58

Tested on P4 2.4/1MB, GF GTS 32MB , 512MB RAM, Win XP


Size=0 FPS=7 Tris=0
Size=1 FPS=170 Tris=218848

with entityalpha 0 which I assume has the same affect as size=0 on an AMD (and is the way I would choose to implement it anyhow)
Size=1 FPS=1200 Tris=0

in the last 2 the fps was varying by about 5 or so, i.e. it was fluctuating from 168-173.

Running on a P4 3.0gig/FX5950Ultra/1gig DDR/win XP 


And Athlon platforms(here is all ok):

Athlon XP 2700+, 512mb ram, Geforce 5700le 256mb, Windows Xp sp2
size#=0; fps = 316, tris = 0
size#=1; fps = 73, tris = 218848 


1.4 GHz Athlon, 512 megs RAM, XP Pro SP2, DirectX 9.0c, Radeon 9600 Pro:

Size# 0.0 = about 245 FPS, 0 Tris
Size# 1.0 = about 79 FPS, 218,848 Tris


size = 0: fps = 220 / tris = 0
size = 1: fps = 78 / tris = 218848 
XP with DX9.0c; Ubuntu Linux 5.04; AMD XP2600; Radeon 9800.


size = 0: fps = 655 / tris = 0
size = 1: fps = 85 / tris = 218848

I ran this on my AMD system listed below. 

Desktop:2.2GHz AMD 64 3500+ - 1GB Ram - eVga Geforce 6800GT - WinXP Pro SP2 w/Directx 9.0c
Laptop: Sager 5660-C, 2.4GHz P4 - 512MB Ram - ATI M9 64MB - WinXP Pro w/DirectX 9.0b 


Plaese solve this problem.
I've already freezed one game because it runs very slow on pentiums(but very well on Athlons processors).

Btw, here are some screens from freezed game ;)
_http://artur.ag-tools.com/PacManiac/11-04-05.jpg
_http://artur.ag-tools.com/PacManiac/11-04-05_2.jpg

And it seems that my new game also has the same problem :(
I'm trying not to use zero sized meshes, but there are a lot of animations with scale meshes etc and it is hard to 100% guaranty that during rutime all will be ok.
And also problem that I haven't pentium to test all this things.
And the strangest thing - why on pentiums?? Why not video drivers problem or something...

PS: Sorry for my english.

Interesting... even if one dimension is scaled to 0 or very close like 0.0000000000000000000000000001 it slows down. It should be possible to scale a entity mesh to zero in one dimension and it should still draw the mesh.. tris drawn goes to 0 after scaling even one dimension to 0.

Tested yor code on intel Centrino..
I have no idea if it is blitz or directx pentium code or pentium itself..

Hehe - I was gonna post that "this has been reported before and there doesn't seem to be a fix" - but then I noticed that it was you that reported it so I'll just slope off into my hole again :-)