個人檔案Quake3 启示录相片部落格清單更多 工具 說明

部落格


6月4日

Gamebryo2.2 8*00系列显卡调试错误

Debug fails with 8600GT

Hi, I am getting assertions in my debug builds when using Geforce 8600GT. Everything was working fine when using 6600GT...
I can only debug using the release version now
I'm using Gamebryo 2.2.2.0 (24th Jan 2007)
Graphics driver: 6.14.11.102 (I tried 158.22 too)
DX SDK: Aug2006
The following was from Debug version of Tutorial01.
The assert message:
Assertion failed!
Program: ...
File: m:\gamebryo2.2rc_win32_src_build...\nidx9s...esc.cpp
Line: 88
Expression: eType == D3DMULTISAMPLE_NONMASKABLE || uiResult == 1
The call stack:
       msvcr80d.dll!_wassert(const wchar_t * expr=0x007b14e0, const wchar_t * filename=0x007b1560, unsigned int lineno=88)  Line 384      C
>      Tutorial01.exe!NiDX9DeviceDesc:DisplayFormatInfo:DisplayFormatInfo()  + 0x1b3 bytes      
       Tutorial01.exe!NiDX9DeviceDesc::NiDX9DeviceDesc()  + 0x22d bytes      
       Tutorial01.exe!NiDX9AdapterDesc::NiDX9AdapterDesc()  + 0x272 bytes      
       Tutorial01.exe!NiDX9SystemDesc::FillAdapterInformation()  + 0xe1 bytes      
       Tutorial01.exe!NiDX9SystemDesc::NiDX9SystemDesc()  + 0x4b bytes      
       Tutorial01.exe!NiDX9Renderer::GetSystemDesc()  + 0xcf bytes      
       Tutorial01.exe!NiDX9Renderer::Initialize()  + 0xda bytes      
       Tutorial01.exe!NiDX9Renderer::Create()  + 0x113 bytes      
       Tutorial01.exe!Renderers::CreateRenderer()  Line 35 + 0x33 bytes      C++
       Tutorial01.exe!NiApplication::Initialize()  + 0x59 bytes      
       Tutorial01.exe!_WinMain@16()  + 0x2e0 bytes      
       Tutorial01.exe!__tmainCRTStartup()  Line 578 + 0x35 bytes      C
       Tutorial01.exe!WinMainCRTStartup()  Line 403      C
       kernel32.dll!7c816fd7()      
       [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]      


The GeForce 8*00 series exposes multisample capabilities in a different way than other graphics cards, which causes older versions of Gamebryo to hit this assertion. The bug was fixed in Gamebryo 2.3.

So are we saying that any applications built on Gamebryo 2.2 can't be debugged if using an 8000 series card? I have been getting the same error and finally found this post. We probably won't be getting Gamebryo 2.3 for another 1 or 2 months so I'd be grateful if anyone knows of a workaround for this. I'd really like to be able to debug my software, but still run the new graphics card. Any possible workarounds?

If you have a copy of Gamebryo 2.3 lying around, you could move the NiDX9SystemDesc.h, .inl, and .cpp files from 2.3 into your copy of 2.2. You'll need to change any instances of "NIASSERT" to "assert", and there may be other minor changes necessary as well, but fixing this bug was the only significant change to occur in those files between those two branches.

回應

請稍候...
很抱歉,您輸入的回應過長。請縮短您的回應。
您尚未輸入內容,請再試一次。
很抱歉,目前無法新增您的回應,請稍後再試。
若要新增回應,您的父母必須先給您權限。要求權限
您的家長已關閉回應功能。
很抱歉,目前無法刪除您的回應,請稍後再試。
您已超過每日回應上限次數,請於 24 小時後再試一次。
由於系統顯示您可能傳送垃圾郵件給其他使用者,因此您帳號中的回應功能已遭停用。 如果您認為自己帳號遭錯誤停用,請連絡 Windows Live 支援
請完成下列安全檢查,以完成回應。
您輸入的安全檢查字元必須與圖片或音訊中的字元相符。

若要新增回應,請以您的 Windows Live ID 登入 (若您使用 Hotmail、Messenger 或 Xbox LIVE,則您已擁有 Windows Live ID)。登入


沒有 Windows Live ID?註冊

引用通告

此內容的引用通告是:
http://topameng.spaces.live.com/blog/cns!F962D4854A8233D!438.trak
引述這則內容的部落格