Closed Viech closed 1 year ago
I could reproduce the crash twice; again below RB_SetColorGrading
. It seems much more likely to happen after a vid_restart
(but not reliably so).
I am sorry, but it seems to be a driver bug: glGetTexImage with a PBO shouldn't crash as the driver will first check that the PBO has the memory allocated of the right size and then do the asynchronous transfer.
However I'd be interested in reproducing it, what do you mean by redisplayed?
@Kangz by "redisplaying" I mean switching back to the desktop that has the Unvanquished client window on it. From what I experienced so far, switching away from Unvanquished's desktop never triggers such a crash, only switching back to it does.
It seems that this issue happens sometimes on plat23 but most of the time (so far: always) on spacetracks, even when no vid_restart
was done.
Not unsimiliar to the bug described in this issue (and thus, I'm not sure whether it deserves an issue of its own), I could just trigger the following SIGSEGV when changing the client window position/size to fullscreen (not to be confused with daemon's r_fullscreen
). This happened after I switched back to the desktop hosting the Unvanquished window (without a crash) on plat23.
Thread 1 (Thread 0x7ffff7fa9780 (LWP 15024)):
#0 0x00007ffff1b36333 in ?? () from /usr/lib/libnvidia-glcore.so.343.36
No symbol table info available.
#1 0x00007ffff1b01b51 in ?? () from /usr/lib/libnvidia-glcore.so.343.36
No symbol table info available.
#2 0x00007ffff1809b73 in ?? () from /usr/lib/libnvidia-glcore.so.343.36
No symbol table info available.
#3 0x00007ffff180a247 in ?? () from /usr/lib/libnvidia-glcore.so.343.36
No symbol table info available.
#4 0x00007ffff180a790 in ?? () from /usr/lib/libnvidia-glcore.so.343.36
No symbol table info available.
#5 0x000000000051b0cf in RB_RenderBloom () at /home/eris/src/Unvanquished/src/engine/renderer/tr_backend.cpp:2792
i = <optimized out>
j = <optimized out>
flip = 0
ortho = {0.00416666688, 0, 0, 0, 0, 0.00666666683, 0, 0, 0, 0, -1.00000998e-05, 0, -1, -1, -0, 1}
#6 0x000000000051c2af in RB_RenderView () at /home/eris/src/Unvanquished/src/engine/renderer/tr_backend.cpp:4596
clearBits = <optimized out>
startTime = 0
endTime = <optimized out>
#7 0x000000000051f16d in RB_DrawView (data=data@entry=0x7fffec4d2054) at /home/eris/src/Unvanquished/src/engine/renderer/tr_backend.cpp:5333
cmd = 0x7fffec4d2054
#8 0x00000000005206fa in RB_ExecuteRenderCommands (data=0x7fffec4d2054, data@entry=0x7fffec4d2034) at /home/eris/src/Unvanquished/src/engine/renderer/tr_backend.cpp:5751
t1 = 523157
t2 = <optimized out>
#9 0x000000000052bc64 in R_IssueRenderCommands (runPerformanceCounters=1) at /home/eris/src/Unvanquished/src/engine/renderer/tr_cmds.cpp:183
cmdList = 0x7fffec4d2034
__PRETTY_FUNCTION__ = "void R_IssueRenderCommands(qboolean)"
#10 0x000000000052c69c in RE_EndFrame (frontEndMsec=0x1d91620, backEndMsec=0x0) at /home/eris/src/Unvanquished/src/engine/renderer/tr_cmds.cpp:862
cmd = 0xc59a4
#11 0x00000000004f8db7 in SCR_UpdateScreen () at /home/eris/src/Unvanquished/src/engine/client/cl_scrn.cpp:787
recursive = 1
#12 0x00000000004f43b7 in CL_Frame (msec=8) at /home/eris/src/Unvanquished/src/engine/client/cl_main.cpp:3670
No locals.
#13 0x000000000044b3ad in Com_Frame (GetInput=0x59ae4d <IN_Frame()>, DoneInput=0x59aef9 <IN_FrameEnd()>) at /home/eris/src/Unvanquished/src/engine/qcommon/common.cpp:2374
msec = 8
timeBeforeEvents = 0
timeBeforeClient = 0
timeAfter = 0
timeBeforeFirstEvents = 0
timeBeforeServer = 0
minMsec = 8
lastTime = 523156
watchdogTime = 0
watchWarn = 0
#14 0x0000000000462c5a in main (argc=18, argv=0x7fffffffe8e8) at /home/eris/src/Unvanquished/src/engine/sys/sys_main.cpp:667
i = 18
commandLine = "\000set vm.game.type 4 \000set vm.sgame.type 4 \000set fs_basepath /usr/share/unvanquished \000set fs_extrapath . \000set language fr \000devmap plat23 ", '\000' <repeats 889 times>
ver = {major = 2 '\002', minor = 0 '\000', patch = 3 '\003'}
curses = 1
Maybe something is bad about the way that we (re)initialize things when a window manager induced adjustment is necessary?
Can anyone look at this?
I think we can assume this is fixed. I don't think we changed a lot of things in this part of the code, but since the crash happens in the nvidia driver code it may very well have been fixed by nvidia too.
On Linux running nvidia 343.36 graphics drivers, the client sometimes crashes inside the driver blob when the desktop workspace that has it is redisplayed. The window manager used is i3. Backtrace of a SIGSEGV in Thread 1: