salfasano
salfasano

Reputation: 297

D3D9 Application not working w/ Intel HD Graphics

I've inherited an application that uses D3D9 to display graphics full screen on monitor #2. The application works properly on a desktop machine with a GeForce 9500 GT. When I attempt to get the application running on a laptop equipped with onboard Intel HD Graphics, all of the graphics are not displayed. One of the vertex buffers is drawn but the rest are black.

I'm not very familiar with D3D, so I'm not sure where to begin debugging this problem. I've been doing some searching but haven't been able to turn anything up.

Update:

Drawing simple vertex buffers with only 2 triangles works, but anything more complex doesn't.

Upvotes: 2

Views: 1395

Answers (2)

SigTerm
SigTerm

Reputation: 26439

Solution #1:

Check every error code for every D3D9 call. Use DXGetErrorString9 and DXGetErrorDescription9 to get human-readable translation of error code. See DirectX documentation for more info. When you finally encounter a call that returns something other thant D3D_OK, investigate DirectX documentation for the call.

Solution #2:

Install debug DirectX drivers (should be included with DirectX SDK), examine debug messages process outputs while being run (messages are being printed using OutputDebugMessage, so you'll only see then in debugger/IDE). With high debug settings, you'll see every single problem in your app.

Upvotes: 0

Dene B
Dene B

Reputation: 496

My gut feeling is likely the supported shader models for the given GPU. Generally it is good practice to query the gfx card to see what it can support.

There is also a chance it could be specific D3D API functionality - you see this more so with switching between say GeForce & ATI(AMD), but of course also possible with Intel being its own vendor; but I would start by querying supported shaders.

For D3D9 you use IDirect3D9::GetDeviceCaps to query the gfx device.

links: Post here: https://gamedev.stackexchange.com/questions/22705/how-can-i-check-for-shader-model-3-support

http://msdn.microsoft.com/en-us/library/bb509626%28VS.85%29.aspx

DirectX also offer functionality to create features for a given device level: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx

Upvotes: 2

Related Questions