[ scummvm-Bugs-3131952 ] OPENGL: Crashing on updateScreen

SourceForge.net noreply at sourceforge.net
Wed Dec 8 03:04:02 CET 2010


Bugs item #3131952, was opened at 2010-12-08 03:04
Message generated for change (Tracker Item Submitted) made by lordhoto
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=3131952&group_id=37116

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Graphics
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Johannes Schickel (lordhoto)
Assigned to: Nobody/Anonymous (nobody)
Summary: OPENGL: Crashing on updateScreen

Initial Comment:
ScummVM trunk r54830
Arch Linux/amd64 g++ 4.5.1
SDL/OpenGL backend

When OSystem::updateScreen is called from a different thread (like a timer callback or the like) the OpenGL graphics code will crash. This is because the OpenGL context is not shared between threads, thus all OpenGL functions relying on a context or resources will cause crashes.

A good candidate of testing is the SKY engine. Just start up BASS (CD) and watch the Intro. When the old man will start talking ScummVM will crash.

Here is a backtrace:

#0  0x00007ffff69d7ee9 in glClear () from /usr/lib/libGL.so.1
#1  0x000000000101dd77 in OpenGLGraphicsManager::internUpdateScreen (this=0x1b5f290)
    at ../git/backends/graphics/opengl/opengl-graphics.cpp:942
#2  0x000000000102084a in OpenGLSdlGraphicsManager::internUpdateScreen (this=0x1b5f290)
    at ../git/backends/graphics/openglsdl/openglsdl-graphics.cpp:420
#3  0x000000000101b9d3 in OpenGLGraphicsManager::updateScreen (this=0x1b5f290) at ../git/backends/graphics/opengl/opengl-graphics.cpp:401
#4  0x0000000001020055 in OpenGLSdlGraphicsManager::updateScreen (this=0x1b5f290)
    at ../git/backends/graphics/openglsdl/openglsdl-graphics.cpp:234
#5  0x0000000001016719 in ModularBackend::updateScreen (this=0x1a78600) at ../git/backends/modular-backend.cpp:160
#6  0x0000000000de5b64 in Sky::Screen::processSequence (this=0x1f4c270) at ../git/engines/sky/screen.cpp:497
#7  0x0000000000de556a in Sky::Screen::handleTimer (this=0x1f4c270) at ../git/engines/sky/screen.cpp:403
#8  0x0000000000dcac5d in Sky::SkyEngine::gotTimerTick (this=0x1ae3cb0) at ../git/engines/sky/sky.cpp:394
#9  0x0000000000dcac3c in Sky::SkyEngine::timerHandler (refCon=0x1ae3cb0) at ../git/engines/sky/sky.cpp:390
#10 0x000000000102d76a in DefaultTimerManager::handler (this=0x1a7f580) at ../git/backends/timer/default/default-timer.cpp:108
#11 0x000000000102bb57 in timer_handler (interval=10, param=0x1a7f580) at ../git/backends/timer/sdl/sdl-timer.cpp:34
#12 0x00007ffff646b238 in ?? () from /usr/lib/libSDL-1.2.so.0
#13 0x00007ffff64b1807 in ?? () from /usr/lib/libSDL-1.2.so.0
#14 0x00007ffff646ae15 in ?? () from /usr/lib/libSDL-1.2.so.0
#15 0x00007ffff64af4c9 in ?? () from /usr/lib/libSDL-1.2.so.0
#16 0x00007ffff6243cb0 in start_thread () from /lib/libpthread.so.0


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=3131952&group_id=37116




More information about the Scummvm-tracker mailing list