What's Faster??

Started by
6 comments, last by Gilderoot 24 years, 6 months ago
Check out TANSTAAFLs ISO page - there was a thread talking about blt speeds - ended up with a basic
Vidmem to Vidmem - fast
Sysmem to Sysmem - fast
Sysmem to Vidmem - slow
so saving on vidmem (normally less of it around) the genral feeling was create the page in sysmem with the many sysmem to sysmem blits and then one sysmem to vidmem blit.
Was a couple of weeks ago now

Psepha

Advertisement
Video blt is the fastest because they don't go through the slow bus so use as much of the video mem as possible. Things get tough if you need to do effects though..

On my p166, if I do a full screen system blt to video, I can at most get 20+ frame rate but with video mem, whoo..

I'm not absolutely sure of this--seem to remember reading it somewhere--so if I'm wrong please correct me. I have always been under the impression that a flip is extremely fast because all it does is change the pointer to memory that the video card uses to find the image it's supposed to draw. Instead of actually having to copy all the data all it does is swap a simple pointer.
yes, all a flip does is change some video registers, meaning only a couple bytes are changed, while a blt transfers many bytes

I have a feeling this is the kind of thing that's just dependent on the video card. On most modern cards, a flip should be as was said above, just changing a few registers to point to a different location in vid-mem to display on the screen. That would be the fastest thing it could do.
On an older card, really low end card, it might not support actual page flipping, in which case the DDraw drivers are going to make it look like it does and do a memory blt. This'll be slow, but I really don't know if there are any cards this crappy still in circulation

So basically, just use the primary/backbuffer idea. Draw to the backbuffer, and flip it over to primary. The only downside to this is feedback effects and stuff like that, they aren't really feasible when doing stuff like this because you end up working with old data every frame

Jonathan

Hmmm question:

When you attach a secondary surface as the backbuffer to a primary surface do the memory types have to be the same? Can the primary be created using video memory and the backbuffer created using system memory?

Never really thought of the implications of this probably too slow as the graphics card would have to pull the backbuffer across the PCI/AGP bus and put the primary into system memory. Now that I'm thinking about it...eeew

Hey, I was wondering what everyone found to be faster... Fullscreen Blt or DD Flip function? Please name your video card, too. Also if you have anything else that you've tried and found something was fast or slow... like I've found DirectDraw's clipper is horribly slow with a TNT.. and it is MUCH faster to use your own clipper. Anybody have any other speed test findings?

Thanks
-Dan

Performance of Blt vs Flip is really dependent on the card. Flip is usually synchronized with the vertical refresh, which can slow it down quite a bit. Specifying DDFLIP_NOVSYNC gets rid of this, at the risk of shear. On some cards, Blt()ing or Flip()ing causes the pipeline to flush. Other cards, like 3dfx's Voodoo 2 and 3, queue a flip command so a flip takes almost no time.

This topic is closed to new replies.

Advertisement