increasing d3d's rendering speed
i have written a simple app using d3d8. check it out on my site under demos/d3d vs opengl. but being a novice with d3d8. "if u can call 4 years experience a novice " im not to sure if im letting d3d render as fast as possible. ie the same app runs about 10% slower in d3d than it does in opengl but in theory there should be no speed difference. so ild appreciate if someone with a bit more d3d knowledge has a look. cheers zed
http://members.xoom.com/myBollux
Your problem is simply that your D3D application is not optimized. Its a simple as that. From my experiences, my Direct3D apps are at least 2x faster than my OpenGL programs.
My System:
Dual Celeron 366 OC 500
3fdx Voodoo5 5500 AGP
192 MB RAM
What you should do is start off with Microsoft''s base code, and then slowly alter it to fit your needs. I did that using a DrunkenHyena (whatever possesed him to make that alias) Direct3D tutorial. Now my code looks nothing alike. I get beautiful frame rates now in my engine.
Just do that and you should have no problems with speed
My System:
Dual Celeron 366 OC 500
3fdx Voodoo5 5500 AGP
192 MB RAM
What you should do is start off with Microsoft''s base code, and then slowly alter it to fit your needs. I did that using a DrunkenHyena (whatever possesed him to make that alias) Direct3D tutorial. Now my code looks nothing alike. I get beautiful frame rates now in my engine.
Just do that and you should have no problems with speed
uploaded a new version, where the window size is smaller ie so the benchmark is less influenced by the cards fillrate.
well i do have new drivers (10.80) for my vanta (tnt2) card, and experience no problems with it.
>> Your problem is simply that your D3D application is not optimized. <<
thats what i wanna know, how can i make it more optimized
>> From my experiences, my Direct3D apps are at least 2x faster than my OpenGL programs <<
do these programs do exactly the same things + can you post the code so we can all have a look.
as it stands at the moment the opengl version is gonna more than 50% quicker than the d3d version which shouldnt be, they should be running at roughly the same speed. so whats up
http://members.xoom.com/myBollux
well i do have new drivers (10.80) for my vanta (tnt2) card, and experience no problems with it.
>> Your problem is simply that your D3D application is not optimized. <<
thats what i wanna know, how can i make it more optimized
>> From my experiences, my Direct3D apps are at least 2x faster than my OpenGL programs <<
do these programs do exactly the same things + can you post the code so we can all have a look.
as it stands at the moment the opengl version is gonna more than 50% quicker than the d3d version which shouldnt be, they should be running at roughly the same speed. so whats up
http://members.xoom.com/myBollux
quote:Original post by PSioNiC
What you should do is start off with Microsoft''s base code, and then slowly alter it to fit your needs. I did that using a DrunkenHyena (whatever possesed him to make that alias) Direct3D tutorial. Now my code looks nothing alike. I get beautiful frame rates now in my engine.
G''day!
Drunken Hyena is the name of my company, since I am the sole proprietor it was handy to associate myself and the company. The name is taken from a poem.
Besides PSioNiC was already taken, and I always mis-type those mixed-case names.
Stay Casual,
Ken
Drunken Hyena
quote:Original post by zedzeek
as it stands at the moment the opengl version is gonna more than 50% quicker than the d3d version which shouldnt be, they should be running at roughly the same speed. so whats up
What''s killing it is your update_and_draw_FPS function.
in the openGL version its simply updating the FPS counter,
in the D3D version you''re locking a vertex buffer and doing stuff.
However, you''re doing all that in between calling end scene and flushing the render pipeline with present.
So what''s happening is that in between finishing drawing and actually displaying the render buffer, you''re doing a huge lock on the VB(which incidently will slow down the gfx chip''s pipeline anyway)and going through a big ''for'' loop.
if you move the update_and_draw_FPS func. to before begin scene it should speed the whole thing up.
hope this helps.
"Bad Day... F**K it!" -Stephen Baldwin (Usual Suspects)
it made no difference
i tried placing it before begin scene and also after begin scene.
is it possible to get rid of the buffer locking or put both the things in the same buffer ( which doesnt sound to flexible )
http://members.xoom.com/myBollux
i tried placing it before begin scene and also after begin scene.
is it possible to get rid of the buffer locking or put both the things in the same buffer ( which doesnt sound to flexible )
http://members.xoom.com/myBollux
hmmm..... sorry, it did make a difference on mine but it wasn''t as big as I''d thought. (oo-er )
I can''t see what''s wrong to be honest.
you COULD use the same VB but I''m not sure that''d make much speed difference.
incidently, you don''t need to set the FVF flag each time if it''s the same.
"Bad Day... F**K it!" -Stephen Baldwin (Usual Suspects)
Have you tried to use D3DUSAGE_DYNAMIC when creating VB´s
and D3DLOCK_DISCARD or D3DLOCK_NOOVERWRITE when locking?
Peter
and D3DLOCK_DISCARD or D3DLOCK_NOOVERWRITE when locking?
Peter
It''s probably a video card/driver issue.
On my home PC, OpenGL is much slower than DX.
My work PC, they are about the same.
On my home PC, OpenGL is much slower than DX.
My work PC, they are about the same.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement