Sign in to follow this  
highvolt_herb

Missing triangles on ATI, Nvidia works fine

Recommended Posts

highvolt_herb    122
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
BlackGhost    116
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
highvolt_herb    122
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
S1CA    1418
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
highvolt_herb    122
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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this