BltFast() vs Moving memory yourself

Started by
27 comments, last by Hootie 23 years, 9 months ago
Well, this is news to me. I was under the impression that BltFast from system->video memory would be quicker than memcpy-type affairs.

I shall have to bear this in mind for non-transparent blts (mental note to self; write expanded test cases).

Thanks very much.

TheTwistedOne
http://www.angrycake.com

Edited by - TheTwistedOne on July 14, 2000 8:43:29 AM
TheTwistedOnehttp://www.angrycake.com
Advertisement
At the request of Hootie I have cleaned up this thread quite a bit. Try not to mess it up again.

For those of you who don''t know what I''m talking about, just ignore this message as it doesn''t have anything to do with you

- WitchLord

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

im no directX guru but i smell a whiff of bollux, ive always assumed memcpy does a copy byte to byte ie 8bit
WitchLord: Thank you!


cyberben: Yes, vidmem to vidmem is a zillion times faster and you should always use that if the videocard has the memory and you have static (unchanging) graphics.

What led me to test all this stuff out is that my engine creates each frame dynamically in system memory then just blts the whole thing to the backbuffer and does a flip. In my case, every pixel on the frame could change from one frame to the next. Impossible to use videomem because the graphics are not composed of a series of static images or sub-images.
zedzeek: memcpy() does 32-bit moves on win32 platforms. Look at the asm listing when compiling it to see for yourself. Never assume anything.
Yes.. exactly... that''s what i was thinking in the beginning, but once i decided to Step Into the memcpy function and found that it copies DWORDs when possible...


..-=gLaDiAtOr=-..
Hi!

I tested the programs on my laptop =) Maybe you
have some use for it. I''ll be able to test it
again on my "normal" machine next tuesday when
I get back home! Anyway, here are the results:

60-61 FPS both programs
Laptop: Compaq Armada E500
128MB WIN2K PROF.
ATI RAGE P/M Mobility 2x AGP 8MB
60/61 FPS both...
Laptop: Compaq Armada E500
128MB WIN2K PROF.
ATI RAGE P/M Mobility 2x AGP 8MB

This is tested with win2k''s default ATI drivers,
I plan to install the official ones sometime later
on... If the numbers change in some odd direction
I''ll post my results!

Hope it is of help =) Look forward to your article!

Later,

Ionstorm
There are some other results posted here if anyone cares:

http://www.eclipsegames.com/ultimate/Forum9/HTML/000678.html

The speed differences are significant on many machines. It seems that laptops, some pci cards and crappy video cards offer no special performance benefits but everything else gets a significant speed boost.

Thanks everyone for helping out with this test. I''ll prepare an article shortly with source. As I discover other performance enhancements I''ll be sure to let everyone know here.

Hootie

This is my way to do the per frame rendering:

1) create the dynamic frame in sysram (per pixel maipulating, etc)
2) blit (memcpy) the frame to backbuffer

3) blit (vidmem -> vidmem) static gui-elements to backbuffer

4) pageflip


Qapla

This topic is closed to new replies.

Advertisement