soulweaver91 / project-carrot

Project Carrot, an open source spiritual clone of the Jazz Jackrabbit 2 game engine
https://carrot.soulweaver.fi/
MIT License
38 stars 4 forks source link

Mysterious crash on multiple virtual machines #33

Closed soulweaver91 closed 8 years ago

soulweaver91 commented 8 years ago

(Split off of #27.)

PC crashes on a Vista x64 VM right after starting up. The crash occurs while trying to set shader parameters, which is odd, because it gets past the initial GPU checks just fine (reports as shaders available and same maximum texture size as in the host OS itself) and apparently the shaders themselves also load properly as they didn't trip up the temporary asserts either.

Stack trace:

Child-SP          RetAddr           Call Site
00000000`0026aca0 00000001`3fb64f45 sfml_graphics_2!sf::Shader::setParameter+0xa
00000000`0026acf0 00000001`3fb6ac4a image00000001_3fb30000!CarrotQt5::loadLevel+0x7f5 [k:\project carrot\carrotqt5\src\carrotqt5.cpp @ 496]
00000000`0026aed0 00000001`3fb49565 image00000001_3fb30000!main+0x5fa
00000000`0026b0a0 00000000`6d8bc4c2 image00000001_3fb30000!QVector<std::weak_ptr<CommonActor> >::reallocData+0x805 [k:\qt\5.6\msvc2015_64\include\qtcore\qvector.h @ 607]
00000000`0026b0e0 00000000`6d934206 Qt5Core!QMetaObject::activate+0x592
00000000`0026b200 00000000`6d8c0f28 Qt5Core!QTimer::timeout+0x16
00000000`0026b230 00000000`6dc97f82 Qt5Core!QObject::event+0x68
00000000`0026b3d0 00000000`6dc96935 Qt5Widgets!QApplicationPrivate::notify_helper+0x112
00000000`0026b400 00000000`6d89b9d9 Qt5Widgets!QApplication::notify+0x12f5
00000000`0026ba60 00000000`6d8e50ac Qt5Core!QCoreApplication::notifyInternal2+0xb9
00000000`0026bae0 00000000`6d8e2e6d Qt5Core!QEventDispatcherWin32Private::sendTimerEvent+0x10c
00000000`0026bb40 00000000`6dc97f82 Qt5Core!QEventDispatcherWin32::event+0x1ad
00000000`0026bbb0 00000000`6dc96935 Qt5Widgets!QApplicationPrivate::notify_helper+0x112
00000000`0026bbe0 00000000`6d89b9d9 Qt5Widgets!QApplication::notify+0x12f5
00000000`0026c240 00000000`6d89d6ce Qt5Core!QCoreApplication::notifyInternal2+0xb9
00000000`0026c2c0 000007fe`f127231f Qt5Core!QCoreApplicationPrivate::sendPostedEvents+0x21e
00000000`0026c370 00000000`6d8e4065 qwindows!qt_plugin_query_metadata+0x246f
00000000`0026c3a0 00000000`7778d53e Qt5Core!QEventDispatcherWin32::processEvents+0xe05
00000000`0026c4b0 00000000`7778d7c6 USER32!GetWindowLongPtrW+0x176
00000000`0026c570 00000000`6d8e37a6 USER32!GetMessageW+0x232

Lines 494 to 496 of CarrotQt5.cpp at the time were as follows:

494:            windowCanvas->draw(loadingScreenSprite);
495:            BitmapString::drawString(getCanvas(), getFont(), levelName, 400, 360, FONT_ALIGN_CENTER);
496:            windowCanvas->updateContents();

It is a mystery as to why the execution even is in the loadLevel function in the first place, as the game should be entering the menu, not a level, as no filename was sent as a command line parameter.

soulweaver91 commented 8 years ago

Also occurs on Windows 7 x64, leading to believe this is a problem with VMware rather than the used version of WIndows.