Archived

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

SikCiv

Voodoo3 SysMem vs VidMem Texture sizes?

Recommended Posts

Since the Voodoo3 cannot support 512x512 textures, and resizing my 512x512 textures in my 2D (D3D) game will be a major hassle, I need to find an alternative. A few questions... 1) Can the voodoo3 support 512x512 textures in System Memory? 2) Is it possible to create a 512x512 surface in Vid or Sys mem, and use CopyRect() to copy the surface in quarters (256x256x4) to the backbuffer? 3) Is the backbuffer typically a surface, therefore CopyRect() compatible? 4) Do all 3D cards support Surface-to-Surface CopyRect? (I think some cards return D3DERR_INVALIDCALL) (I dont own a Voodoo3 so I cannot test these routines myself)

  Downloads:  ZeroOne Realm

Share this post


Link to post
Share on other sites
System memory to vidmemory is slow. If your gonna be doing lots of them copy rects every frame, your game will crawl to an absolute halt. If you want to use larger textures, you will have to get a better video card. If you dont, then you can load up the large image to a surface and resize them to a 256x256 texture. But to answer the question, I dont know if system memory can hold the larger textures, but you can try it. I would imagine it would, but it will be slooowww.

Possibility

Share this post


Link to post
Share on other sites
Break the suface up into smaller peaces like 128*128 and brake down the texture into smaller peaces into that same size smaller peaces (128*128) then when u draw the smaller surfaces next to each other each quater will have a quater of the orgnal texture on it so all 4 will have the larger texture on it

~prevail by daring to fail~

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Hi,
I posted on this forum too with nearly the same problem as you have. What do you want to say with

4) Do all 3D cards support Surface-to-Surface CopyRect?
(I think some cards return D3DERR_INVALIDCALL)

I was shocked as I read this b/c I always recieve a D3DERR_INVALIDCALL when using CopyRects and I do have a Voodoo3 card. I posted the whole source code in my post, maybe it helps you.

Share this post


Link to post
Share on other sites
quote:

4) Do all 3D cards support Surface-to-Surface CopyRect?
(I think some cards return D3DERR_INVALIDCALL)

I was shocked as I read this b/c I always recieve a D3DERR_INVALIDCALL when using CopyRects and I do have a Voodoo3 card. I posted the whole source code in my post, maybe it helps you.



If the Voodoo3 cannot even handle CopyRects then it must be a crappier card than I thought! My game requires CopyRect to function, and many gfx routines in my game are designed around 512x512 sizes which will be a major hassle to change so I''m going to sack V3 support (at least for now).

  Downloads:  ZeroOne Realm

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I have an AGP Voodoo3 and IDirect3DDevice8::CopyRects() works perfectly fine for copying from an off-screen surface to the back surface.

I don''t normally use surfaces.
For 2D graphics I use processed vertices and textures.
Because then I can use color keys and clipping.
Too bad there is a 256x256 limit on texture size.

Share this post


Link to post
Share on other sites
My AGP Voodoo 3 also allows this, as I was using it to draw a background is a resident-evil style game I'm working on. I've split it up now though and texture map it onto the screen.

Maybe the PCI version of the Voodoo 3 can't handle it?

Dan

Edited by - danbrown on August 11, 2001 5:36:58 AM

Share this post


Link to post
Share on other sites