Opened 3 years ago

Closed 3 years ago

#9614 closed defect (fixed)

SCI32: Space quest 6 scummvm freeze during the injection scene

Reported by: hpvb Owned by: csnover
Priority: normal Component: Engine: SCI
Keywords: sci32 Cc:
Game: Space Quest 6

Description

When the blur filter gets switched to the background scummvm becomes completely unresponsive, mouse no longer moves, keyboard input does not work either.

Save attached, steps to reproduce:

  • Give the evidence to the doctor
  • Watch the cutscene (you can skip all dialog and it still happens)

revision 65d0c659efbf35c7f6aa7b181428c1995a288184

Attachments (1)

sq6-cd.049 (95.3 KB ) - added by hpvb 3 years ago.
Save to reproduce the crash

Download all attachments as: .zip

Change History (6)

by hpvb, 3 years ago

Attachment: sq6-cd.049 added

Save to reproduce the crash

comment:1 by hpvb, 3 years ago

Priority: highnormal

This seems to only happen when the rendering mode is set to OpenGL, on HQ2x this does not happen. Backtrace from during the hang:

#0 0x00007ffff53503ed in poll () at ../sysdeps/unix/syscall-template.S:84
#1 0x00007fffeec08f80 in _xcb_conn_wait () from /lib64/libxcb.so.1
#2 0x00007fffeec0ac79 in xcb_wait_for_special_event () from /lib64/libxcb.so.1
#3 0x00007fffeaa4c4e7 in dri3_find_back () from /lib64/libGL.so.1
#4 0x00007fffeaa4d2f0 in loader_dri3_get_buffers () from /lib64/libGL.so.1
#5 0x00007fffe87e2988 in intel_update_renderbuffers () from /usr/lib64/dri/i965_dri.so
#6 0x00007fffe87e2ce1 in intel_prepare_render () from /usr/lib64/dri/i965_dri.so
#7 0x00007fffe87e3cd8 in brw_draw_prims () from /usr/lib64/dri/i965_dri.so
#8 0x00007fffe8570f9a in vbo_draw_arrays () from /usr/lib64/dri/i965_dri.so
#9 0x00007fffe85e41dc in blitframebuffer_texture () from /usr/lib64/dri/i965_dri.so
#10 0x00007fffe85e5138 in _mesa_meta_BlitFramebuffer () from /usr/lib64/dri/i965_dri.so
#11 0x00007fffe85e6aaa in _mesa_meta_pbo_TexSubImage () from /usr/lib64/dri/i965_dri.so
#12 0x00007fffe88292de in intelTexSubImage () from /usr/lib64/dri/i965_dri.so
#13 0x00007fffe852aecb in _mesa_texture_sub_image () from /usr/lib64/dri/i965_dri.so
#14 0x00007fffe852b136 in texsubimage () from /usr/lib64/dri/i965_dri.so
#15 0x00007fffe852b558 in _mesa_TexSubImage2D () from /usr/lib64/dri/i965_dri.so
#16 0x0000000001e6f8f0 in OpenGL::GLTexture::updateArea (this=0x4acdbd4, area=..., src=...) at backends/graphics/opengl/texture.cpp:167
#17 0x0000000001e711e6 in OpenGL::TextureCLUT8GPU::updateGLTexture (this=0x4acdbc0) at backends/graphics/opengl/texture.cpp:612
#18 0x0000000001e69092 in OpenGL::OpenGLGraphicsManager::updateScreen (this=0x32b5b10) at backends/graphics/opengl/opengl-graphics.cpp:394
#19 0x0000000001e4c11d in OpenGLSdlGraphicsManager::updateScreen (this=0x32b5b10) at backends/graphics/openglsdl/openglsdl-graphics.cpp:343
#20 0x0000000001e077fe in ModularBackend::updateScreen (this=0x2fa4ec0) at backends/modular-backend.cpp:149
#21 0x00000000015e77be in Sci::GfxFrameout::showBits (this=0x4f83de0) at engines/sci/graphics/frameout.cpp:1169
#22 0x00000000015e7d36 in Sci::GfxFrameout::showRect (this=0x4f83de0, rect=...) at engines/sci/graphics/frameout.cpp:1279
#23 0x00000000015fa770 in Sci::GfxTransitions32::processPixelDissolve21Mid (this=0x4f725f0, showStyle=...) at engines/sci/graphics/transitions32.cpp:758
#24 0x00000000015fa0be in Sci::GfxTransitions32::processPixelDissolve (this=0x4f725f0, showStyle=...) at engines/sci/graphics/transitions32.cpp:607
#25 0x00000000015f8c3b in Sci::GfxTransitions32::processEffects (this=0x4f725f0, showStyle=...) at engines/sci/graphics/transitions32.cpp:162
#26 0x00000000015e58f2 in Sci::GfxFrameout::palMorphFrameOut (this=0x4f83de0, styleRanges=0x4f725f9 "", showStyle=0x44f3570) at engines/sci/graphics/frameout.cpp:629
#27 0x00000000015faa3d in Sci::GfxTransitions32::processMorph (this=0x4f725f0, showStyle=...) at engines/sci/graphics/transitions32.cpp:825
#28 0x00000000015f9dab in Sci::GfxTransitions32::processShowStyle (this=0x4f725f0, showStyle=..., now=1267801) at engines/sci/graphics/transitions32.cpp:510
#29 0x00000000015f8a2b in Sci::GfxTransitions32::processShowStyles (this=0x4f725f0) at engines/sci/graphics/transitions32.cpp:103
#30 0x00000000015e7bc7 in Sci::GfxFrameout::kernelFrameOut (this=0x4f83de0, shouldShowBits=true) at engines/sci/graphics/frameout.cpp:1244
#31 0x00000000015d00a3 in Sci::kFrameOut (s=0x4ecbb20, argc=0, argv=0x4f62b08) at engines/sci/engine/kgraphics32.cpp:236
#32 0x000000000157aee3 in Sci::callKernelFunc (s=0x4ecbb20, kernelCallNr=33, argc=0) at engines/sci/engine/vm.cpp:393
#33 0x000000000157cf30 in Sci::run_vm (s=0x4ecbb20) at engines/sci/engine/vm.cpp:894
#34 0x000000000152e199 in Sci::SciEngine::runGame (this=0x3148d30) at engines/sci/sci.cpp:836
#35 0x000000000152c9fb in Sci::SciEngine::run (this=0x3148d30) at engines/sci/sci.cpp:419
#36 0x000000000040e396 in runGame (plugin=0x32af1e0, system=..., edebuglevels=...) at base/main.cpp:260
#37 0x000000000040f4aa in scummvm_main (argc=1, argv=0x7fffffffdb08) at base/main.cpp:522
#38 0x000000000040c6c3 in main (argc=1, argv=0x7fffffffdb08) at backends/platform/sdl/posix/posix-main.cpp:45

comment:2 by hpvb, 3 years ago

The transition does eventually complete, but on my box it takes 2 - 3 minutes before the transition completes.

Last edited 3 years ago by hpvb (previous) (diff)

comment:3 by hpvb, 3 years ago

Summary: SCI32: Space quest 6 scummvm freeze after during the injection sceneSCI32: Space quest 6 scummvm freeze during the injection scene

comment:4 by csnover, 3 years ago

This hang happens to me as well using SDL2; there is probably a bug in the algorithm since it seems to churn for a while almost at the end of the transition (though, strangely, I never experience such a problem when I first implemented and tested this). The loop also needs to pump the event source to avoid mouse cursor hangs (in SSCI mouse cursor was handled via interrupt, whereas in ScummVM it is polled).

comment:5 by csnover, 3 years ago

Owner: set to csnover
Resolution: fixed
Status: newclosed

Fixed in 724385eb5e3154628a5e1655471d7cf4d67b7a70.

Note: See TracTickets for help on using tickets.