Intermittent startup crash in Win8.1 nvoglv32.DLL

Problems and solutions for installing or running FreeOrion, including discussion of bugs if needed before posting a bug report on GitHub. For problems building from source, post in Compile.

Moderator: Oberlus

Post Reply
Message
Author
cyanic
Krill Swarm
Posts: 11
Joined: Mon Dec 09, 2013 10:07 pm

Intermittent startup crash in Win8.1 nvoglv32.DLL

#1 Post by cyanic »

I get an intermittent crash at startup under Windows 8.1 with an NVIDIA GeForce GTX 750 Ti.

It happens before the main window loads at
Texture.cpp Texture::InitFromRawData
glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &checked_format);
Going up the stack trace to some context gives
GalaxySetupWnd.cpp GalaxySetupPanel::Init
m_textures[RANDOM] = ClientUI::GetTexture(ClientUI::ArtDir() / "gp_random.png");

These may be related:
viewtopic.php?f=25&t=8544&hilit=nvoglv32.dll
http://stackoverflow.com/questions/1504 ... video-card

The full stack trace (from built-from-source SVN 7115) is
nvoglv32.dll!5a139cca()
[Frames below may be incorrect and/or missing, no symbols loaded for nvoglv32.dll]
nvoglv32.dll!59636c10()
GiGi.dll!GG::Texture::InitFromRawData(GG::X width, GG::Y height, const unsigned char * image, unsigned int format, unsigned int type, unsigned int bytes_per_pixel, bool mipmap) Line 494 C++
GiGi.dll!GG::Texture::Init(GG::X width, GG::Y height, const unsigned char * image, unsigned int format, unsigned int type, unsigned int bytes_per_pixel, bool mipmap) Line 423 C++
GiGi.dll!GG::Texture::Load(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & filename, bool mipmap) Line 382 C++
GiGi.dll!GG::TextureManager::LoadTexture(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & filename, bool mipmap) Line 679 C++
GiGi.dll!GG::TextureManager::GetTexture(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & name, bool mipmap) Line 662 + 0x10 bytes C++
GiGi.dll!GG::GUI::GetTexture(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & name, bool mipmap) Line 1276 + 0x24 bytes C++
FreeOrion.exe!ClientUI::GetTexture(const boost::filesystem::path & path, bool mipmap) Line 827 + 0x5d bytes C++
> FreeOrion.exe!GalaxySetupPanel::Init() Line 318 + 0x44 bytes C++
FreeOrion.exe!GalaxySetupPanel::GalaxySetupPanel(GG::X x, GG::Y y, GG::X w) Line 199 C++
FreeOrion.exe!MultiPlayerLobbyWnd::MultiPlayerLobbyWnd() Line 407 + 0x37 bytes C++
FreeOrion.exe!ClientUI::ClientUI() Line 528 + 0x25 bytes C++
FreeOrion.exe!HumanClientApp::HumanClientApp(Ogre::Root * root, Ogre::RenderWindow * window, Ogre::SceneManager * scene_manager, Ogre::Camera * camera, Ogre::Viewport * viewport, const boost::filesystem::path & ois_input_cfg_file_path) Line 193 + 0x1f bytes C++
FreeOrion.exe!mainSetupAndRunOgre() Line 322 + 0x60 bytes C++
FreeOrion.exe!wmain(int argc, wchar_t * * argv, wchar_t * * envp) Line 88 + 0x5 bytes C++
FreeOrion.exe!__tmainCRTStartup() Line 552 + 0x17 bytes C
kernel32.dll!7683919f()
ntdll.dll!76ffa8cb()
ntdll.dll!76ffa8a1()
FreeOrion.exe!Effect::RemoveStarlanes::Execute(const ScriptingContext & context) Line 1855 + 0x35 bytes C++

The event log entry (from test-build-install SVN 7108) is
Faulting application name: FreeOrion.exe, version: 0.0.0.0, time stamp: 0x535e9f34
Faulting module name: nvoglv32.DLL, version: 9.18.13.3523, time stamp: 0x5315b3b9
Exception code: 0xc0000005
Fault offset: 0x00c39cca
Faulting process id: 0x7cc
Faulting application start time: 0x01cf74997342cfd4
Faulting application path: C:\Program Files (x86)\FreeOrion\FreeOrion.exe
Faulting module path: C:\Windows\SYSTEM32\nvoglv32.DLL
Report Id: b24546e3-e08c-11e3-82aa-d850e6dcf81a
Faulting package full name:
Faulting package-relative application ID:

Edit: I have the GeForce 335.23 driver installed, and it claims it is up-to-date. There is a 337.50 beta available, but the release highlights only talk about DirectX.

Edit(2): This appears to be the same issue as viewtopic.php?f=28&t=8755&hilit=nvoglv32.dll
Attachments
ogre.zip
ogre.log and freeorion.log
(5.46 KiB) Downloaded 151 times

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13603
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Intermittent startup crash in Win8.1 nvoglv32.DLL

#2 Post by Geoff the Medio »

That the driver is up to date doesn't guarantee there are no bugs or incompatibilities. Not much we can do, I suspect, unless someone knows some workaround for texture loading issues with such cards.

You might also try reverting the file the is being loaded when it crashes to a previous version. Various files have been recompressed and reuploaded to SVN, which has occasionally caused crashes. Just deleting the file without replacing might also avoid the crash, as it should default to the missing file graphic instead (which hopefully will load ok?).

cyanic
Krill Swarm
Posts: 11
Joined: Mon Dec 09, 2013 10:07 pm

Re: Intermittent startup crash in Win8.1 nvoglv32.DLL

#3 Post by cyanic »

Updating the drivers didn't help.

Since this is always related to loading large graphic files, I found that calling

Code: Select all

m_multiplayer_lobby_wnd =   new MultiPlayerLobbyWnd();
earlier in the ClientUI constructor reduces the chance of the crash.

Has there been any thought of using sprite sheets instead of expanding each graphic file to "power of two" bounds?

Patch code released under GPLv2 or later license.
Attachments

[The extension patch has been deactivated and can no longer be displayed.]


Post Reply