[Scummvm-tracker] [ScummVM :: Bugs] #15251: Segfault with disable-16bit
ScummVM :: Bugs
trac at scummvm.org
Sat Jul 6 22:02:36 UTC 2024
#15251: Segfault with disable-16bit
------------------------+----------------------
Reporter: scummvmuser | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Graphics
Version: | Keywords:
Game: |
------------------------+----------------------
ScummVM segfaults immediately if I `configure --disable-16bit`.
Feel free to close this with "well don't do that then". (But I guess this
should be handled somehow instead of segfault.)
Bisect:
{{{
$ git bisect bad
bcc92593825aba9e3e8e87cf615168ab016dcb54 is the first bad commit
Date: Thu Aug 24 21:55:21 2023 +0100
BACKENDS: Report if the backend supports cursors with alpha channels
backends/graphics/opengl/opengl-graphics.cpp | 1 +
.../graphics/surfacesdl/surfacesdl-graphics.cpp | 7 +--
backends/graphics3d/android/android-graphics3d.cpp | 1 +
backends/graphics3d/ios/ios-graphics3d.cpp | 1 +
backends/platform/3ds/osystem-graphics.cpp | 1 +
backends/platform/dc/dcmain.cpp | 1 +
backends/platform/ds/ds-graphics.cpp | 2 +-
backends/platform/ios7/ios7_osys_main.cpp | 1 +
.../platform/libretro/src/libretro-os-base.cpp | 2 +-
backends/platform/psp/osys_psp.cpp | 2 +-
backends/platform/wii/osystem.cpp | 1 +
common/system.h | 6 +++
graphics/cursorman.cpp | 8 ----
gui/ThemeEngine.cpp | 52
+++++++++++-----------
gui/ThemeEngine.h | 3 +-
15 files changed, 45 insertions(+), 44 deletions(-)
}}}
Configure, build, run:
`./configure --disable-all-engines --disable-detection-full --enable-debug
--enable-asan --disable-16bit && make -j"$(nproc)" &&
ASAN_OPTIONS=alloc_dealloc_mismatch=0 ./scummvm -d11`
Log:
{{{
Debuglevel (from command line): 11
Using SDL Video Driver "x11"
Invalid joystick: 0
Using SDL Audio Driver "pulseaudio"
Output sample rate: 44100 Hz
Output buffer size: 1024 samples
Output channels: 2
OpenGL: GL context initialized
OpenGL version: 4.6.0 NVIDIA 535.183.01
OpenGL vendor: NVIDIA Corporation
OpenGL renderer: NVIDIA GeForce GTX 980 Ti/PCIe/SSE2
OpenGL: version 4.6
OpenGL: GLSL version string: 4.60 NVIDIA
OpenGL: GLSL version: 460
OpenGL: Max texture size: 16384
OpenGL: NPOT texture support: 1
OpenGL: Shader support: 1
OpenGL: Shader support for engines: 1
OpenGL: Multitexture support: 1
OpenGL: FBO support: 1
OpenGL: Multisample FBO support: 1
OpenGL: Multisample max number: 32
OpenGL: Packed pixels support: 1
OpenGL: Packed depth stencil support: 1
OpenGL: Unpack subimage support: 1
OpenGL: OpenGL ES depth 24 support: 0
OpenGL: Texture edge clamping support: 1
OpenGL: Texture border clamping support: 1
OpenGL: Texture mirror repeat support: 1
OpenGL: Texture max level support: 1
generateZipSet: Loaded pack file: shaders.dat
HardwareInput with ID 'JOY_START' not known
HardwareInput with ID 'JOY_LEFT_STICK_Y-' not known
HardwareInput with ID 'JOY_LEFT_STICK_Y+' not known
HardwareInput with ID 'JOY_LEFT_STICK_X-' not known
HardwareInput with ID 'JOY_LEFT_STICK_X+' not known
HardwareInput with ID 'JOY_RIGHT_SHOULDER' not known
CPU extensions:
SSE2(enabled) AVX2(enabled) NEON(not supported)
Reported DPI: 117.797 default: 90, ratio 1.30886, clipped: 1.30886
Setting 1280 x 1377 -> 977 x 1052 -- 1.30886
generateZipSet: Loaded pack file: gui-icons.dat
Opening hashed: THEMERC
Opening hashed: THEMERC
Opening hashed: THEMERC
Opening hashed: THEMERC
Loading theme gui/themes/scummremastered.zip
Opening hashed: THEMERC
Finished loading theme gui/themes/scummremastered.zip
WARNING: initWithU32String: Fribidi not available, will use input strings
as fallback.!
Adding Gui Object 0x619000040b80 to trash
Adding Gui Object 0x61900003a780 to trash
Adding Gui Object 0x61900003ac80 to trash
HardwareInput with ID 'JOY_A' not known
HardwareInput with ID 'JOY_Y' not known
HardwareInput with ID 'JOY_UP' not known
HardwareInput with ID 'JOY_DOWN' not known
HardwareInput with ID 'JOY_LEFT' not known
HardwareInput with ID 'JOY_RIGHT' not known
AddressSanitizer:DEADLYSIGNAL
=================================================================
==45685==ERROR: AddressSanitizer: SEGV on unknown address 0x61a0ffff2f8c
(pc 0x556a5026d384 bp 0x7ffe28453180 sp 0x7ffe28453170 T0)
==45685==The signal is caused by a WRITE memory access.
#0 0x556a5026d384 in OpenGL::TextureCLUT8GPU::setColorKey(unsigned
int) (/home/user/scummvm/scummvm+0x4f3384)
#1 0x556a5026090c in
OpenGL::OpenGLGraphicsManager::updateCursorPalette()
(/home/user/scummvm/scummvm+0x4e690c)
#2 0x556a5025a54b in
OpenGL::OpenGLGraphicsManager::setMouseCursor(void const*, unsigned int,
unsigned int, int, int, unsigned int, bool, Graphics::PixelFormat const*,
unsigned char const*) (/home/user/scummvm/scummvm+0x4e054b)
#3 0x556a501b88f7 in ModularGraphicsBackend::setMouseCursor(void
const*, unsigned int, unsigned int, int, int, unsigned int, bool,
Graphics::PixelFormat const*, unsigned char const*)
(/home/user/scummvm/scummvm+0x43e8f7)
#4 0x556a5033e9c7 in
Graphics::CursorManager::pushCursor(Graphics::Surface const&, int, int,
unsigned int, bool, unsigned char const*)
(/home/user/scummvm/scummvm+0x5c49c7)
#5 0x556a5033e5d9 in Graphics::CursorManager::pushCursor(void const*,
unsigned int, unsigned int, int, int, unsigned int, bool,
Graphics::PixelFormat const*, unsigned char const*)
(/home/user/scummvm/scummvm+0x5c45d9)
#6 0x556a500e9c24 in GUI::ThemeEngine::showCursor()
(/home/user/scummvm/scummvm+0x36fc24)
#7 0x556a500d6b8c in GUI::ThemeEngine::enable()
(/home/user/scummvm/scummvm+0x35cb8c)
#8 0x556a50023c5c in GUI::GuiManager::runLoop()
(/home/user/scummvm/scummvm+0x2a9c5c)
#9 0x556a5003126e in GUI::LauncherDialog::run()
(/home/user/scummvm/scummvm+0x2b726e)
#10 0x556a5003a493 in GUI::LauncherChooser::runModal()
(/home/user/scummvm/scummvm+0x2c0493)
#11 0x556a4ff478f1 in launcherDialog()
(/home/user/scummvm/scummvm+0x1cd8f1)
#12 0x556a4ff4f378 in scummvm_main
(/home/user/scummvm/scummvm+0x1d5378)
#13 0x556a4ff437a3 in main (/home/user/scummvm/scummvm+0x1c97a3)
#14 0x7f0279a46249 in __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
#15 0x7f0279a46304 in __libc_start_main_impl ../csu/libc-start.c:360
#16 0x556a4ff332a0 in _start (/home/user/scummvm/scummvm+0x1b92a0)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/user/scummvm/scummvm+0x4f3384) in
OpenGL::TextureCLUT8GPU::setColorKey(unsigned int)
==45685==ABORTING
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/15251>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list