problems with Direct X 9 and g660 card

Started by
3 comments, last by ET3D 15 years, 8 months ago
Hi, Maybe someone can help me.... I'm programming a game engine on my laptop PC using C++ & Direct X 9 SDK. It works fine on the laptop with 'USE_HARDWARE_VERTEX_PROCESSING' but it won't work properly on my desktop PC unless I choose 'USE_SOFTWARE_VERTEX_PROCESSING', where it works fine but ofcourse the frame rate becomes teadiously slow. The nature of the 'not working' is as follows: The program doesn't crash, but it won't render graphics to the screen. It's just a blank white screen (it's designed to execute in windowed mode). The menu's continue to function as does sound effects. The desktop sports a 6600 GT graphics card. Using the direct X 'examine caps' utility, i can see vertually no difference in the capabilities between the desktop graphics card & the Laptop graphics card. The program uses direct X lighting methods, and when i edit this out of the code, the program runs fine on the desktop (with hardware vertex processing), so this is clearly where the problem lies. THe code has been rigerously checked and i'm confident that it doesn't contain any mistakes. Also, the direct X debugging tools fail to pinpoint the problem. Is it possible that fixed pipeline direct X methods are simply incompatible with the geforce graphics cards ? I would be greatfull if some one could shed some light on this.........
Advertisement
G660 don't gives any video card result on google, but if you are talking about the GeForce 6600, it is more than capable of doing hardware accelerated DirectX graphics. First thing you should try before thinking about programming your own engine and finding flaws is simply to try to play a game on it. If a commercial game work, your engine should work, if it doesn't well you have a problem. if you have a problem, make sure you have the latest video drivers installer (www.nvidia.com) and DirectX runtimes.
I play a lot of commercial games on my computer, all of which use direct X;

I doubt that they use a fixed pipeline though......

The graphics card is a geforce 6600GT.
I would imagine you're making some sort of assumption about one or more features/capabilities that your laptop can handle but your desktop can't. In quite a few situations this doesn't constitute a hard error and you'll get the sort of behaviour you describe.

The #1 thing you should do is use the debug runtimes. In fact, these should just be left switched on for your dev machine. They are your best friend. Either examine the output via Visual Studio or fire up the sysinternals tool for capturing it from a proper deployment.

In doing so I'd imagine you'll get a whole bunch of warnings or errors being reported that tell you exactly why its not working [smile]

I assume, of course, that you're checking all of your HRESULT's and doing proper device enumeration, right? [grin]


Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

Some useful debug tips:

Try using the REF device. If you get the error there, then it's a good indication the problem is in your code.

Use PIX. You can see what the draw call does. You'll see which vertices are transformed and how.


Regarding the problem, one thing which can cause such a problem is wrong parameters for the DrawIndexed call. Parameters such as NumVertices are sometimes ignored, which leads to calls working even if the parameter isn't correct.

This topic is closed to new replies.

Advertisement