[Scummvm-tracker] [ScummVM :: Bugs] #15243: Segfault switching to OpenGL
ScummVM :: Bugs
trac at scummvm.org
Wed Jul 3 04:06:37 UTC 2024
#15243: Segfault switching to OpenGL
------------------------+--------------------
Reporter: scummvmuser | Owner: (none)
Type: defect | Status: new
Priority: high | Component: GUI
Version: | Keywords:
Game: |
------------------------+--------------------
In Global Options, my graphics mode is set to "SDL Surface". If I set that
to "OpenGL" and click Apply or OK, ScummVM segfaults. (I guess
`_aspectCheckbox` is nil when it should be something.)
{{{
Debian 12.6 amd64 with nvidia-driver 535.183.01-1~deb12u1
ScummVM 2.9.0git5811-gc5948672ff2 (Jul 2 2024 22:04:47)
Using SDL backend with SDL 2.26.5
Features compiled in: Vorbis SEQ TiMidity RGB FreeType2 PNG SDL2 TinyGL
OpenGL
}}}
{{{
$ git checkout c3c9f43a047 # AGS: Fix build when SIZE_MAX is 64-bit sized
$ git bisect good
4875573f66ebb474cab3bd36600703a242cbb1ff is the first bad commit
GUI: Disable shader controls instead of hiding them. Prvides better UX
gui/options.cpp | 80
++++++++++++++++++++++++---------------------------------
gui/options.h | 3 +++
2 files changed, 37 insertions(+), 46 deletions(-)
}}}
{{{
AddressSanitizer:DEADLYSIGNAL
=================================================================
==15550==ERROR: AddressSanitizer: SEGV on unknown address 0x0000000000f8
(pc 0x55d156544fd8 bp 0x7ffd4b20d6a0 sp 0x7ffd4b20d690 T0)
==15550==The signal is caused by a READ memory access.
==15550==Hint: address points to the zero page.
#0 0x55d156544fd8 in GUI::Widget::setEnabled(bool)
(/home/user/scummvm/scummvm+0x6a7fd8)
#1 0x55d1564970dd in GUI::OptionsDialog::setGraphicSettingsState(bool)
(/home/user/scummvm/scummvm+0x5fa0dd)
#2 0x55d1564b095a in GUI::OptionsDialog::setupGraphicsTab()
(/home/user/scummvm/scummvm+0x61395a)
#3 0x55d156495ea5 in
GUI::OptionsDialog::handleCommand(GUI::CommandSender*, unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x5f8ea5)
#4 0x55d1564c783b in
GUI::GlobalOptionsDialog::handleCommand(GUI::CommandSender*, unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x62a83b)
#5 0x55d156441aad in GUI::CommandSender::sendCommand(unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x5a4aad)
#6 0x55d15659b79e in GUI::ScrollContainerWidget::reflowLayout()
(/home/user/scummvm/scummvm+0x6fe79e)
#7 0x55d1565a04de in GUI::TabWidget::reflowLayout()
(/home/user/scummvm/scummvm+0x7034de)
#8 0x55d156433337 in GUI::Dialog::reflowLayout()
(/home/user/scummvm/scummvm+0x596337)
#9 0x55d1564b0569 in GUI::OptionsDialog::reflowLayout()
(/home/user/scummvm/scummvm+0x613569)
#10 0x55d1564c8dcb in GUI::GlobalOptionsDialog::reflowLayout()
(/home/user/scummvm/scummvm+0x62bdcb)
#11 0x55d15643ec03 in GUI::GuiManager::screenChange()
(/home/user/scummvm/scummvm+0x5a1c03)
#12 0x55d15643ea47 in GUI::GuiManager::checkScreenChange()
(/home/user/scummvm/scummvm+0x5a1a47)
#13 0x55d15648f53f in GUI::OptionsDialog::apply()
(/home/user/scummvm/scummvm+0x5f253f)
#14 0x55d1564c376d in GUI::GlobalOptionsDialog::apply()
(/home/user/scummvm/scummvm+0x62676d)
#15 0x55d156494dde in GUI::OptionsDialog::close()
(/home/user/scummvm/scummvm+0x5f7dde)
#16 0x55d1564c567b in GUI::GlobalOptionsDialog::close()
(/home/user/scummvm/scummvm+0x62867b)
#17 0x55d156496384 in
GUI::OptionsDialog::handleCommand(GUI::CommandSender*, unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x5f9384)
#18 0x55d1564c783b in
GUI::GlobalOptionsDialog::handleCommand(GUI::CommandSender*, unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x62a83b)
#19 0x55d156441aad in GUI::CommandSender::sendCommand(unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x5a4aad)
#20 0x55d1565477eb in GUI::ButtonWidget::handleMouseUp(int, int, int,
int) (/home/user/scummvm/scummvm+0x6aa7eb)
#21 0x55d156434161 in GUI::Dialog::handleMouseUp(int, int, int, int)
(/home/user/scummvm/scummvm+0x597161)
#22 0x55d15643fdbb in GUI::GuiManager::processEvent(Common::Event
const&, GUI::Dialog*) (/home/user/scummvm/scummvm+0x5a2dbb)
#23 0x55d15643c7fa in GUI::GuiManager::runLoop()
(/home/user/scummvm/scummvm+0x59f7fa)
#24 0x55d156432fc0 in GUI::Dialog::runModal()
(/home/user/scummvm/scummvm+0x595fc0)
#25 0x55d15644e997 in
GUI::LauncherDialog::handleCommand(GUI::CommandSender*, unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x5b1997)
#26 0x55d156458ead in
GUI::LauncherSimple::handleCommand(GUI::CommandSender*, unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x5bbead)
#27 0x55d156441aad in GUI::CommandSender::sendCommand(unsigned int,
unsigned int) (/home/user/scummvm/scummvm+0x5a4aad)
#28 0x55d1565477eb in GUI::ButtonWidget::handleMouseUp(int, int, int,
int) (/home/user/scummvm/scummvm+0x6aa7eb)
#29 0x55d156434161 in GUI::Dialog::handleMouseUp(int, int, int, int)
(/home/user/scummvm/scummvm+0x597161)
#30 0x55d15643fdbb in GUI::GuiManager::processEvent(Common::Event
const&, GUI::Dialog*) (/home/user/scummvm/scummvm+0x5a2dbb)
#31 0x55d15643c7fa in GUI::GuiManager::runLoop()
(/home/user/scummvm/scummvm+0x59f7fa)
#32 0x55d1564497b0 in GUI::LauncherDialog::run()
(/home/user/scummvm/scummvm+0x5ac7b0)
#33 0x55d1564529d5 in GUI::LauncherChooser::runModal()
(/home/user/scummvm/scummvm+0x5b59d5)
#34 0x55d15615b02d in launcherDialog()
(/home/user/scummvm/scummvm+0x2be02d)
#35 0x55d156162d69 in scummvm_main
(/home/user/scummvm/scummvm+0x2c5d69)
#36 0x55d156156edf in main (/home/user/scummvm/scummvm+0x2b9edf)
#37 0x7f142fa46249 in __libc_start_call_main
../sysdeps/nptl/libc_start_call_main.h:58
#38 0x7f142fa46304 in __libc_start_main_impl ../csu/libc-start.c:360
#39 0x55d156145240 in _start (/home/user/scummvm/scummvm+0x2a8240)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/user/scummvm/scummvm+0x6a7fd8) in
GUI::Widget::setEnabled(bool)
==15550==ABORTING
}}}
Please let me know how I might provide more helpful info. Sorry if my
bisect misleads; I don't really know what I'm doing.
As a workaround to set my graphics mode to OpenGL, I checked out the good
commit mentioned above, adjusted the setting, then came back to present.
(I should have checked docs for scummvm.ini and made the change there,
though.)
--
Ticket URL: <https://bugs.scummvm.org/ticket/15243>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list