Archived

This topic is now archived and is closed to further replies.

Leprosy

Blitting from system to system memory...

Recommended Posts

Leprosy    122
I just read TANS post on how to use another surface in system memory to blit all the world object in system memory to and then blit that to the screen to improve performace. I implemented this style and lost about 10 fps. Anyone else had this happen? I know this post is kinda vauge but why the decrease in performance as apposed to sys to vid memory? Lep

Share this post


Link to post
Share on other sites
cyberben    122
You probably did a couple things... first off vid memory is VERY fast... so if anything of yours before was in vid memory that would account for 10fps actually it could account for 100''s of fps in some cases...

Anyhow the point of this system architechture is that most RTS'' and some RPG''s use more than 16mb of vid memory and actually a lot of kid gamers which is a target market are using cosco e-machines w/ 4-8mb graphics cards so somewhere somehow were going to have stuff in system ram... now if you let DX decide what, it''ll load as much as it can to vid memory and then opt for sysram after that. Sounds good? Well now what if your primary surface, back-buffer and tileset takes up the video ram and now you still need some surfaces for units? well then every time you blit units (In an RTS that could be 100''s of units) you''ll have to do a sysram to vid blit which is costly as you get more and more units playing... so rather than hundreds of sysram-vidram blits we do a bunch of sysram blits in sysram then ONE sysram to vidram blit at the end.

In my game I can (The system is in place but I don''t actually have all my art done) load in excess of 35mb of graphics w/ a 4mb graphics card and still hold 60fps... if I did all those blit from sysram to vid ram like that I''d have 1-3fps!

Does this make sense? This system is not for you if you can fit everything into vidram.
Hope you understand!
See ya,
Ben

Share this post


Link to post
Share on other sites
Leprosy    122
quote:
Original post by cyberben

You probably did a couple things... first off vid memory is VERY fast... so if anything of yours before was in vid memory that would account for 10fps actually it could account for 100''s of fps in some cases...

Anyhow the point of this system architechture is that most RTS'' and some RPG''s use more than 16mb of vid memory and actually a lot of kid gamers which is a target market are using cosco e-machines w/ 4-8mb graphics cards so somewhere somehow were going to have stuff in system ram... now if you let DX decide what, it''ll load as much as it can to vid memory and then opt for sysram after that. Sounds good? Well now what if your primary surface, back-buffer and tileset takes up the video ram and now you still need some surfaces for units? well then every time you blit units (In an RTS that could be 100''s of units) you''ll have to do a sysram to vid blit which is costly as you get more and more units playing... so rather than hundreds of sysram-vidram blits we do a bunch of sysram blits in sysram then ONE sysram to vidram blit at the end.

In my game I can (The system is in place but I don''t actually have all my art done) load in excess of 35mb of graphics w/ a 4mb graphics card and still hold 60fps... if I did all those blit from sysram to vid ram like that I''d have 1-3fps!

Does this make sense? This system is not for you if you can fit everything into vidram.
Hope you understand!
See ya,
Ben


I do understand what your saying... but Ive already tried what your suggested. If I specify my tileset to be in system ram and blit it to vid ram im getting better results then if I have another surface in system ram, use all my tileset blits to that and then blit that once to the primary surface. Theoretically sys to sys blits should be faster then sys to video blit but im seeing about a 10 fps loss

Any ideas?

Share this post


Link to post
Share on other sites