GFX Driver test

BlitzPlus Forums/BlitzPlus Programming/GFX Driver test

* NEW VERSION *

Just to give the various graphics drivers a good kicking.
Uses Rects, Ovals, Lines, Text, Image

; GFX Driver test for BlitzPlus v1.34

Const screenmode=1 ; 0=auto 1=full 2=win 3=scaled

numdrivers=CountGfxDrivers()
Dim tm(numdrivers)

For drv=1 To numdrivers
	SetGfxDriver drv
	Graphics 640,480,0,screenmode
	img=CreateImage(96,96) : SetBuffer ImageBuffer(img)
	Color 255,0,0
	For s=1 To 20 Step 5 : Oval s,s,96-s,96-s,0 : Next
	SetBuffer BackBuffer() : Cls
	Text 320,240,GfxDriverName(drv),1,1
	Flip False : Delay 1500
	t=MilliSecs()
	Gosub RunTest
	tm(drv)=MilliSecs()-t
	EndGraphics
Next

msg$="Test Results (in millisecs)"+Chr$(10)+Chr$(10)
For drv=1 To numdrivers
	dname$=Left$(GfxDriverName(drv)+"    ",10)+": "
	msg$=msg$+dname$+tm(drv)+Chr$(10)
Next
Notify msg$
End


.RunTest
drawmode=1
For d=1 To 10000
	Color Rand(255),Rand(255),Rand(255)
	If d Mod 1000=0 Then drawmode=drawmode+1
	If drawmode=6 Then drawmode=1
	Select drawmode
		Case 1 : Text Rand(640),Rand(480),"Blitz GFX Driver Test"
		Case 2 : Rect Rand(640),Rand(480),Rand(10,40),Rand(10,40),1
		Case 3 : Oval Rand(640),Rand(480),Rand(20,80),Rand(20,80),1
		Case 4 : Line Rand(640),Rand(480),Rand(640),Rand(480)
		Case 5 : DrawImage img,Rand(640),Rand(480)
	End Select
	If d Mod 25=0 Flip False
Next
Return



I get these results (full screen)

Native > 1816 m/secs
OpenGL > 6645 m/secs **
DirectDraw > 851 m/secs

Winner = DirectDraw

** For some reason OpenGL flickers in full screen.
Buffer {Flip} problem?
Also, it appears to ignore Flip False (therefore waiting for the screen to sync). This gives poor results.
If I use Flip True then directdraw is tiny bit slower.

I get roughly:

Native>1400
OpenGL>300
DD>900

Native: 3384
OpenGL: 665
DDraw: 2025

Not bad for a PII 233 ;)

Native --> 1929
OpenGL --> 246
DirectX--> 544

Go GL!

EDIT by request ;] : 128MB GeForce3 Ti200

Native : 2218
OpenGL : 1549
DirectX : 747

:D

go directx?

note: you should say why video card you have, since some (older ones) don't support hardware GL

hehe i think mine doesn't support HW GL.. it's ATI RAGE mobility with 8MB RAM :D
i think my PC is not the only one that's equipped with non-open GL GFX card.. it would be nice to include an opotion for selecting GFX driver or auto-checking and selecting code..

Native: 894
OpenGL : 245
DirectX : 367

GeForce4 MX440

Yet another argument for dumping DX ;)

Russell

with the boost OGL gives, it looks like its time to dust off my old B2D NES emulator I started on a year or so back.

Rino - also, try installing the OpenGL hardware drivers. I think you can grab them at http://www.opengl.org .

I get...

Native 1786
OpenGL 3000
DirectX 506

Wooooowwww, go Radeon! =]

Native : 14840
OpenGl : 28980
DirectX : 10432

On my little laptop
NeoMagic MagicGraph 128XD.

Uhm ain't this a bit too simple a test? I'm going to work on something with sprites as native seems way faster than DX in this regard.

Yeh, agreed. Rectangles are a bit simplistic for a real test. This was a nice quick'n'dirty sorta test, but let's get into something a bit more realistic =D

I know 100% now that you need to fix your drivers up Poed, since it seems that you havn't installed them properly, since both blitz and my Dll doesn't work properly, since it Uses microsofts Crappy software GL

here is a program that test for that.
if it list microsoft Corp or any thing like that as the vendor, then it uses software.
http://www.specis.pwp.blueyonder.co.uk/Drago/GLinfo.zip
btw up/down cursor keys move the list up and down.. (eh specis... 9 extensions... ;) )

btw I get
native: 1176
OpenGL: 392
DirectX: 622

Drago, I installed the drivers that came with the card-- there wasnt really any way for me to install them improperly as the whole thing was automated.

Also like I said before, Jedi Knight II runs fine, and returns a number of gl extensions.

I'd say most likely ati's the culprit, not me =P

If the user needs to install "proper" GL drivers to make the game work up to speed, you ought to include them when you distribute your game.

Just updated the code to include tests for:

Rects, Ovals, Lines, Text, Image

Right, I get :-
Native 2469
Open GL 6650
DirectDraw 873

Geforce2 mx400
256mb ram (100mhz)
Athlon 1300

:)

I got:-
Native : 1718
OpenGL : 452
DirectDraw : 661

Athlon 1800 - Windows XP - Radeon 9700 - B+ v1.34

:)


If the user needs to install "proper" GL drivers to make the game work up to speed, you ought to include them when you distribute your game.



You think that the GL drivers for every card your end user might conceivably have should be included in the download? Most people won't like that much.

Well I was really referring to the "boxed" game, ie on CD. If the game was to be downloaded, then a link ought to be provided, rather than included in the download.

No commercial boxed game does this. I think Quake3 provided an early version of GL Setup... but unless they've seriously updated that (last I checked, it was current as of Sept or Oct 2001, and didn't support Win2000.. WinXP wasn't even in existance yet), it's a relatively pointless program.

Even providing a link or links to drivers is unreasonable and unrealistic because of the number of manufacturers out there.

To quote www.opengl.com themselves..

Each OpenGL accelerator manufacturer writes their own OpenGL drivers. So if you need a new or updated driver, go to the manufacturer's web site for your OpenGL accelerator board and download and install their latest OpenGL driver.



If the writers of the API themselves won't go through the trouble...

In short, driver support is way beyond the scope that any developer should have to provide for their software. If you decide to take on that responsibility, you'll get nothing else done.

For maximum speed, maybe a test such as this (although more comprehensive) should be performed at the beginning to see which is better on the host computer, since it seems that none of the modes wins all the time.

This is a nice flexibility to have in a language (the ability to switch drivers). Good work, Mark!

Russell

I recently downloaded new nVidia drivers, and now OpenGL doesn't work in Blitz Basic at all!!! :(