Voodoo 1 question...

Started by
4 comments, last by simon_brown75 24 years ago
I''ve recently added enumeration to a D3D program I''m writing. It works fine on a Voodoo 3, it even works on an old S3 Virge, but when I run the program on a second PC with a Voodoo Graphics (voodoo 1) board in, the textures go wrong. Instead of a stone wall and pebble floor I get huge blocks of yellow and blue. It''s definitely using the VG and the polygon shapes are correct, and I''m doing enumeration exactly as advised in the DX7 tutorials. Also i''ve tried plenty of different VG drivers and the VG works with the DX7 SDK sample programs. I''ve also tried different texture formats. All I can think of is that either an add-on board has to be treated differently, or maybe I have to set some setting in D3D differently because the VG will only work with certain textures. Any ideas? Thanks, Simon.
Advertisement
I don''t have a clue on exact code because I dont have a voodoo 1. I think it has something to do with the 3D Card having seperate memmory than the 2D Card. Also, I''m suprised that textures work on your S3 Virge. I thought that card did not support HW texturing.
I had the same problem!
The problem was I wasn''t using the texture management flags when creating my texture surfaces. Are you doing this?
(code
	/*	 * Texture management flags	 */    if (D3DDeviceGUID == IID_IDirect3DHALDevice)        ddsd.ddsCaps.dwCaps2 = DDSCAPS2_TEXTUREMANAGE;    else if (D3DDeviceGUID == IID_IDirect3DTnLHalDevice)        ddsd.ddsCaps.dwCaps2 = DDSCAPS2_TEXTUREMANAGE;    else        ddsd.ddsCaps.dwCaps /= DDSCAPS_SYSTEMMEMORY; 


hope this helps?
Wow!, you''re a genious! Problem solved. Thanks to both of you for the help.
That was it? Also, do you have to add the SYSTEMMEMMORY flag when it is in software mode? I left it out and it works fine.
Yeah, just one flag and it worked. Of course it''s just as important to know why it worked, so i''ll have to have a look at the caps. the voodoo 1 is reporting. If I load the textures into system memory, I get no textures at all, if I load into video memory, I get corrupt textures and i''ve no idea why. It says in the DX7 docs that setting this flag (DDSCAPS2_TEXTUREMANAGE) lets the driver manage the texture instead of IM doing it, so I guess that IM was handling it wrong in some way. I''ll have to look into it more.
As for software mode, i don''t know enough to comment, but in theory you would want the textures in system memory since the CPU can access them faster.

This topic is closed to new replies.

Advertisement