Jump to content
  • Advertisement
Sign in to follow this  

Missing triangles on ATI, Nvidia works fine

This topic is 4962 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi everyone, when rendering the vertex/indexbuffers on my GeForce 5600 System (WinXP MCE), everything works quite fine. When testing the same code with the same models and texture files on 2 different ATI systems (RADEON 9800XL and X700 on WinXP HOME), some triangles are NOT rendered, while other triangles are textured from both sides. I could reduce the geometry to a simple cube (like a skybox) in which all my models are placed. I'm not using D3DX mesh stuff, just parse the X-file and copy into my own geometry structures and vertex/index buffers. At the first glance, this looks like a culling problem. My code uses D3DCULL_CCW. I tried to set D3DCULL_NONE, which does not influence the effect. I currently have no idea, what the problem could be. My ATI Driver is not the very latest one, and of course I will upgrade tomorrow, when I have more bandwidth for the download. But I doubt, that this is the problem, as the same shows on 2 different ATI systems, that's why i suspect, that there is some relation to ATI... Did anyone observe similar problems? I'm just looking for some hints, where I could start my search? Thanks very much, Herb

Share this post


Link to post
Share on other sites
Advertisement
Try to make it work as intended using the REF driver. If it works with the REF driver and you see other results using the HAL driver, it's probably the driver's fault.

Share this post


Link to post
Share on other sites
Hi, thanks for your replies!
Namethatnobodyelsetook, I think you hit the nail: seems that my parameters are not correctly setup, minindex was fixed to 0. It does not work completely, but I'm sure I will find the problem now.
BlackGhost, the tip with the ref device is very good! I still have problems with it, as it reports MaxActiveLights=-1, which brings my program into trouble, which is a little bit confusing, but I will have a closer look at that.
Again, thank you for your help
Herb

Share this post


Link to post
Share on other sites
1) Using the debug Direct3D runtime with the output level increased and "Maximum Validation" enabled should help narrow down any problems with Draw*Primitive*() parameters.

2) The MaxActiveLights cap is a DWORD which is a 32-bit "unsigned int" so the REF device is reporting that it can have a maximum of 4,294,967,295 active lights rather than -1 active lights.

Share this post


Link to post
Share on other sites
Hi Simon, your are 100% right. My mistake was, that I use DWORD for the declaration of MaxActiveLights, but used %d instead of %u in my sprintf() in my logging code.
I also thought, that this -1 could be caused by that signed/unsigned stuff, but was unsure, because the dx caps viewer also reports the MaxActiveLights as -1. Apparently, the DX Caps Viewer has the same bug as my code.
Actually, my code hangs, because I use this number as counter in a loop, and 4.... is really a little high. I did not expect the ref device to report such a high number of lights, but this will be fixed.
Thanks a lot for your help!
Greetings, Herb

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!