2012-05-09 40 views
1

我已經繼承了一個應用程序,它使用D3D9在顯示器#2上全屏顯示圖形。該應用程序在配備GeForce 9500 GT的臺式機上正常工作。當我試圖讓應用程序在裝有板載英特爾高清顯卡的筆記本電腦上運行時,所有圖形都不顯示。其中一個頂點緩衝區被繪製,但其餘的都是黑色的。D3D9應用程序無法使用w/Intel高清顯卡

我不是很熟悉D3D,所以我不知道從哪裏開始調試這個問題。我一直在做一些搜索,但一直沒能把任何東西變成什麼。

更新:

繪製簡單頂點緩衝區,只有2個三角形的作品,但任何事情更復雜的沒有。

回答

1

我的直覺可能是給定GPU支持的着色器模型。 通常查詢gfx卡以查看它可支持的內容是一種很好的做法。

還有一個機會,它可能是特定的D3D API功能 - 你可以更清楚地看到,如果說在GeForce & ATI(AMD)之間切換,那當然也可以用英特爾作爲它自己的供應商;但我會首先查詢支持的着色器。

對於D3D9,您使用IDirect3D9 :: GetDeviceCaps來查詢gfx設備。

鏈接: 登錄點擊這裏: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還提供功能給定設備水平打造特色: http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx

0

解決方案#1:

檢查每一個錯誤每個D3D9調用的代碼。使用DXGetErrorString9DXGetErrorDescription9可以獲得人類可讀的錯誤代碼翻譯。有關更多信息,請參閱DirectX文檔。當您最終遇到一個返回其他內容的電話時,請調查該電話的DirectX文檔。

解決方案2:

安裝調試DirectX驅動程序(應該包括與DirectX SDK),檢查調試消息過程輸出正在運行(正在使用OutputDebugMessage打印信息,同時,讓你只看到那麼在調試器/ IDE)。通過高調試設置,您會在應用中看到每一個問題。