[2.1] crash in window initialization

Problems building or running the engine, queries about how to use features etc.
Post Reply
Boost113
Kobold
Posts: 35
Joined: Sun Sep 08, 2013 6:39 pm
x 6

[2.1] crash in window initialization

Post by Boost113 »

Ogre Version: 2.1 (22005:fa50ede7200b)
Operating System: Windows 8
Render System: OpenGL 3+

I have a player who can't launch the game I'm working on.
This is the callstack I got from their crash report:

Code: Select all

Crash reason:  EXCEPTION_ACCESS_VIOLATION_WRITE
Crash address: 0xe5b7f000
Process uptime: 7 seconds

Thread 0 (crashed)
 0  OgreMain.dll!Ogre::v1::Rectangle2D::initRectangle2D() [ogrerectangle2d.cpp : 89 + 0x7]
    rax = 0x00000000e5b7f000   rdx = 0x0000007ae5420088
    rcx = 0x13ae64b04a9e0000   rbx = 0x0000007ae57cdf90
    rsi = 0x000007fb2886d890   rdi = 0x0000007ae32e1e50
    rbp = 0x0000007ae57d4970   rsp = 0x0000007ade7bea90
     r8 = 0x0000000000000002    r9 = 0x0000000000000016
    r10 = 0x000000000000000f   r11 = 0x0000000000000008
    r12 = 0x0000000000000000   r13 = 0x0000007ade9d95f0
    r14 = 0x0000007ae56d3000   r15 = 0x0000007ae56d2be0
    rip = 0x000007fb2610c661
    Found by: given as instruction pointer in context
 1  OgreMain.dll!Ogre::v1::Rectangle2D::Rectangle2D(bool,unsigned int,Ogre::ObjectMemoryManager *,Ogre::SceneManager *) [ogrerectangle2d.cpp : 49 + 0x8]
 2  OgreMain.dll!Ogre::CompositorManager2::CompositorManager2(Ogre::RenderSystem *) [ogrecompositormanager2.cpp : 87 + 0x2c]
 3  OgreMain.dll!Ogre::Root::oneTimePostWindowInit() [ogreroot.cpp : 1548 + 0x20]
 4  OgreMain.dll!Ogre::Root::createRenderWindow(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,unsigned int,unsigned int,bool,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::STLAllocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,Ogre::CategorisedAllocPolicy<0> > > const *) [ogreroot.cpp : 1358 + 0x8]
 5  Engine.dll!Leviathan::Window::Window(Leviathan::Graphics *,Leviathan::AppDef *) [window.cpp : 149 + 0x2e] This is my code
Looking at that file that is mentioned in the crash report it probably is that the vertex buffer can't be locked for writing

Code: Select all

float *pVerts = static_cast<float*>( vbuf->lock(HardwareBuffer::HBL_DISCARD) );
They said they have Intel HD 4000 graphics. There have been also a few other users who have had also issues with Ogre not starting (but they have been in a slightly different place considering the Ogre log.
https://hastebin.com/mewuqoyaju.http

Should Ogre work with?

Code: Select all

15:23:42: GL_VERSION = 3.3.0.0
15:23:42: GL_VENDOR = Intel
15:23:42: GL_RENDERER = Intel(R) HD Graphics 4000
Or do we need to explicitly state on our games' download page that that is too old?
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: [2.1] crash in window initialization

Post by dark_sylinc »

Hi!
Boost113 wrote: Tue Jan 01, 2019 11:09 pm They said they have Intel HD 4000 graphics. There have been also a few other users who have had also issues with Ogre not starting (but they have been in a slightly different place considering the Ogre log.
https://hastebin.com/mewuqoyaju.http
That link appears to be broken.
Boost113 wrote: Tue Jan 01, 2019 11:09 pm Should Ogre work with?

Code: Select all

15:23:42: GL_VERSION = 3.3.0.0
15:23:42: GL_VENDOR = Intel
15:23:42: GL_RENDERER = Intel(R) HD Graphics 4000
Or do we need to explicitly state on our games' download page that that is too old?
Often, a driver update is all that's needed. Chances are this user is not running on latest drivers.
Nonetheless, as stated in our HW&SW Requirements page, when it comes to the specific case of the Intel HD 4000 GPU, the D3D11 RenderSystem is highly recommended over the GL3+ one, as GL3 gives us troubles with that card.
Boost113
Kobold
Posts: 35
Joined: Sun Sep 08, 2013 6:39 pm
x 6

Re: [2.1] crash in window initialization

Post by Boost113 »

The user replied that they have the latest drivers according to Intel driver & support assistant. So I guess (as we probably won't be able to maintain directx rendering for our game) that players with such old Intel integrated GPUs can't play our game.
Boost113
Kobold
Posts: 35
Joined: Sun Sep 08, 2013 6:39 pm
x 6

Re: [2.1] crash in window initialization

Post by Boost113 »

I just got another user reporting problems with Intel HD4000, but this time the crash is happening in a different place.

Here's a callstack:

Code: Select all

Crash reason:  EXCEPTION_ACCESS_VIOLATION_EXEC
Crash address: 0x0
Process uptime: 2 seconds
 
Thread 0 (crashed)
 0  0x0
    rax = 0x000000000bb39401   rdx = 0x000000000be1d5f0
    rcx = 0x0000000000000002   rbx = 0x0000000000000002
    rsi = 0x000000000bd681f8   rdi = 0x000000000015d2d8
    rbp = 0x000000000015d209   rsp = 0x000000000015d178
     r8 = 0x0000000000000019    r9 = 0x0000000009ea8920
    r10 = 0x000000000bd3a790   r11 = 0x000000000bd3d970
    r12 = 0x000000000becef78   r13 = 0x0000000000000001
    r14 = 0x0000000000000000   r15 = 0x0000000000000004
    rip = 0x0000000000000000
    Found by: given as instruction pointer in context
 1  RenderSystem_GL3Plus.dll!Ogre::logObjectInfo(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,unsigned int) [ogreglslextsupport.cpp : 48 + 0x8]
    rbp = 0x000000000015d209   rsp = 0x000000000015d180
    rip = 0x000007fee6a5930d
    Found by: stack scanning
 2  RenderSystem_GL3Plus.dll!Ogre::GLSLShader::compile(bool) [ogreglslshader.cpp : 296 + 0x111]
    rbp = 0x000000000015d209   rsp = 0x000000000015d270
    rip = 0x000007fee6a854eb
    Found by: call frame info
 3  RenderSystem_GL3Plus.dll!Ogre::GLSLMonolithicProgram::compileAndLink() [ogreglslmonolithicprogram.cpp : 151 + 0x7]
    rbp = 0x000000000015d209   rsp = 0x000000000015d390
    rip = 0x000007fee6a624e6
    Found by: call frame info
 4  RenderSystem_GL3Plus.dll!Ogre::GLSLMonolithicProgram::activate() [ogreglslmonolithicprogram.cpp : 130 + 0x6]
    rbp = 0x000000000015d209   rsp = 0x000000000015d540
    rip = 0x000007fee6a61d62
    Found by: call frame info
 5  RenderSystem_GL3Plus.dll!Ogre::GLSLMonolithicProgramManager::getActiveMonolithicProgram() [ogreglslmonolithicprogrammanager.cpp : 143 + 0x6]
    rbp = 0x000000000015d209   rsp = 0x000000000015d5b0
    rip = 0x000007fee6a65a0f
    Found by: call frame info
 6  RenderSystem_GL3Plus.dll!Ogre::GL3PlusRenderSystem::_setPipelineStateObject(Ogre::HlmsPso const *) [ogregl3plusrendersystem.cpp : 2107 + 0xd]
    rbp = 0x000000000015d209   rsp = 0x000000000015d630
    rip = 0x000007fee6ab4d91
    Found by: call frame info
 7  OgreMain.dll!Ogre::CommandBuffer::execute() [ogrecommandbuffer.cpp : 102 + 0xd]
    rbp = 0x000000000015d209   rsp = 0x000000000015d6c0
    rip = 0x000007fee08734dd
    Found by: call frame info
 8  OgreMain.dll!Ogre::RenderQueue::render(Ogre::RenderSystem *,unsigned char,unsigned char,bool,bool) [ogrerenderqueue.cpp : 455 + 0xc]
    rbp = 0x000000000015d209   rsp = 0x000000000015d6f0
    rip = 0x000007fee0711576
    Found by: call frame info
 9  OgreMain.dll!Ogre::SceneManager::_renderPhase02(Ogre::Camera *,Ogre::Camera const *,Ogre::Viewport *,unsigned char,unsigned char,bool) [ogrescenemanager.cpp : 1295 + 0x2f]
    rbp = 0x000000000015d209   rsp = 0x000000000015f060
    rip = 0x000007fee077a0be
    Found by: call frame info
10  OgreMain.dll!Ogre::Camera::_renderScenePhase02(Ogre::Camera const *,Ogre::Viewport *,unsigned char,unsigned char,bool) [ogrecamera.cpp : 403 + 0x37]
    rbp = 0x000000000015d209   rsp = 0x000000000015f130
    rip = 0x000007fee0515043
    Found by: call frame info
11  OgreMain.dll!Ogre::Viewport::_updateRenderPhase02(Ogre::Camera *,Ogre::Camera const *,unsigned char,unsigned char) [ogreviewport.cpp : 229 + 0x25]
    rbp = 0x000000000015d209   rsp = 0x000000000015f1a0
    rip = 0x000007fee08595b9
    Found by: call frame info
12  OgreMain.dll!Ogre::RenderTarget::_updateViewportRenderPhase02(Ogre::Viewport *,Ogre::Camera *,Ogre::Camera const *,unsigned char,unsigned char,bool) [ogrerendertarget.cpp : 241 + 0x29]
    rbp = 0x000000000015d209   rsp = 0x000000000015f1e0
    rip = 0x000007fee0733ef8
    Found by: call frame info
13  OgreMain.dll!Ogre::CompositorPassScene::execute(Ogre::Camera const *) [ogrecompositorpassscene.cpp : 214 + 0x3e]
    rbp = 0x000000000015d209   rsp = 0x000000000015f220
    rip = 0x000007fee08a10cd
    Found by: call frame info
14  OgreMain.dll!Ogre::CompositorNode::_update(Ogre::Camera const *,Ogre::SceneManager *) [ogrecompositornode.cpp : 1017 + 0x11]
    rbp = 0x000000000015d209   rsp = 0x000000000015f2e0
    rip = 0x000007fee08805c3
    Found by: call frame info
15  OgreMain.dll!Ogre::CompositorWorkspace::_update() [ogrecompositorworkspace.cpp : 750 + 0x11]
    rbp = 0x000000000015d209   rsp = 0x000000000015f360
    rip = 0x000007fee088f983
    Found by: call frame info
16  OgreMain.dll!Ogre::CompositorManager2::_updateImplementation(Ogre::SceneManagerEnumerator &,Ogre::HlmsManager *) [ogrecompositormanager2.cpp : 713 + 0x5]
    rbp = 0x000000000015d209   rsp = 0x000000000015f450
    rip = 0x000007fee08793ba
    Found by: call frame info
17  OgreMain.dll!Ogre::Root::_updateAllRenderTargets() [ogreroot.cpp : 1567 + 0x1d]
    rbp = 0x000000000015d209   rsp = 0x000000000015f4c0
    rip = 0x000007fee0764157
    Found by: call frame info
18  OgreMain.dll!Ogre::Root::renderOneFrame() [ogreroot.cpp : 1091 + 0x8]
    rbp = 0x000000000015d209   rsp = 0x000000000015f510
    rip = 0x000007fee0768547
    Found by: call frame info
Somehow the code execution jumps to 0x0 and tries to execute code from there.

Ogre log is here: https://pastebin.com/rHKDznbF
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5296
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: [2.1] crash in window initialization

Post by dark_sylinc »

The dump you uploaded is crashing inside glIsProgramPipeline which I suspect it is because glIsProgramPipeline is not present.
The most likely reason here is that the drivers are extremely old. Your user should update their GPU drivers.
Boost113
Kobold
Posts: 35
Joined: Sun Sep 08, 2013 6:39 pm
x 6

Re: [2.1] crash in window initialization

Post by Boost113 »

I didn't get the user to update their drivers, but as it turns out they also had an nvidia GPU in their laptop and after setting the game to use that it worked.
Post Reply