Open ArtemS2 opened 12 months ago
Короче обнови репу и пересобери все. Посмотрим будут ли вылеты
Не, новый вылет после сборки из новой репы. И собираться стало дольше на 3 минуты. Thread 1 "hl2_launcher" received signal SIGSEGV, Segmentation fault. 0x0000fffff029b11c in CDataCacheSection::Unlock (this=this@entry=0xaaaaaaf45bb0, handle=0x10110) at ../datacache/datacache.cpp:384 384 nBytesUnlocked = AccessItem( (memhandle_t)handle )->size; (gdb) bt
this=this@entry=0xaaaaaaf45bb0, handle=0x10110)
at ../datacache/datacache.cpp:384
this=0xaaaaaaf45bb0) at ../datacache/datacache.cpp:376
at ../datacache/datacache.cpp:557
at ../datacache/mdlcache.cpp:2417
this=<synthetic pointer>, __in_chrg=<optimized out>)
at ../public/datacache/imdlcache.h:285
at ../engine/host.cpp:3496
at ../engine/host.cpp:3619
this=this@entry=0xfffff2f84520 <g_HostState>,
frameTime=frameTime@entry=0.0125111267) at ../engine/host_state.cpp:505
--Type
this=this@entry=0xfffff2f84520 <g_HostState>, time=0.0125111267)
at ../engine/host_state.cpp:648
at ../engine/host_state.cpp:124
at ../engine/sys_engine.cpp:432
this=this@entry=0xfffff2f8b530 <s_EngineAPI>)
at ../engine/sys_dll2.cpp:1537
at ../engine/sys_dll2.cpp:2109
at ../appframework/AppSystemGroup.cpp:380
this=0xfffff2f8b530 <s_EngineAPI>) at ../engine/sys_dll2.cpp:1818
at ../appframework/AppSystemGroup.cpp:380
at ../appframework/AppSystemGroup.cpp:380
argv=<optimized out>) at ../launcher/launcher.cpp:1493
--Type
Ну то что собираться стало дольше это уже твои проблемы. А краш звездец какой странный. Попробуй обновить компилятор
Да вроде из оф репов последнии версии компиляторов стоят. Мб конечно, это потому что я не собрал bin для hl2, но сейчас соберу и попробую еще протестить.
Если ты тестировал это на css то не важно что в hl2 он их не грузит
ну ты можешь попробывать CXX=clang CC=clang еще Если gcc новее нету
Это конечно не решение ведь разные компиляторы могут по-разному оптимизировать код. Посмотреть бы хотя бы что там в памяти хранится. Кхм. А собери с -T debug с gcc ./waf configure -T debug вместо -T release Если поймаешь краш не закрывай gdb посмотрим че там лежит в памяти
CC="gcc -g" CXX="g++ -g" а это больше не нужно добавлять?
@ArtemS2 не убирай пока
блин, баги походу спать легли, попробую завтра, сегодня больше вылетов почему-то нет
@ArtemS2 В debug режиме отключается значительная часть оптимизаций компилятором. там может быть просто такой баг, что не проявляется без этих оптимизаций
@nillerusr Ну я заметил, что иногда были небольшие подвисания, они конечно лучше чем вылеты. Попробую ещё завтра поиграть с debug. И наверное, потом другим компилятором соберу.
Вообще чудно , что в последнем lts выпуске убунту положили в arm версию такой странный компилятор , учитывая что под x86-64 у них таких проблем нет.
@ArtemS2 Это тоже далеко не факт, что это вина компилятора. Это запросто может быть просто какой-то тупорылый баг который проявляется только с gcc на arm64. Я под android собираю его только с clang. На 32 бит с gcc не было таких проблем на андроиде тоже. Ну вообщем дя
Смог словить баг , но правда только играя с ботами, но ждал очень долго (gdb) bt
from /home/artem/games/hlisx/HL2/bin/libshaderapidx9.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
from /home/artem/games/hlisx/HL2/bin/libmaterialsystem.so
--Type
main=main@entry=0xaaaaaaaa119c, argc=argc@entry=3,
argv=argv@entry=0xffffffffec18)
at ../sysdeps/nptl/libc_start_call_main.h:58
argv=0xffffffffec18, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=<optimized out>)
at ../csu/libc-start.c:392
Еще бывают такие приколюхи и они не только на orange pi, на raspberry pi 4b в Raspbian тоже такие штуки заметил.
@ArtemS2 к этому окну я уже точно вообще не причем. Не используй gnome
Смог словить баг , но правда только играя с ботами, но ждал очень долго
Это уже другая совсем херня. И как ты умудрился дебаг символы потерять в дебаг сборке?
Так на lxde оно тоже появляется
Выключи, я с этим ничего не сделаю можно разве что оптимизировать загрузку карт чтобы такого не происходило. Там рендертред намеренно вешается при загрузке карт и менять я это не подумаю
Ну с этим окном , оно не критично
Бля попробуй играть с lldb, у тебя что-то с gdb какие-то приколы. Запускается вроде все точно так же
а это как можно запустить?
Точно так же просто вместо gdb пишешь lldb
А ну почти lldb -- ./hl2_launcher
Вообще как-то странно , на debug сборке пропали вылеты там где они раньше были в half life 2 . Сегодня прошел несколько глав и ничего не вылетело, но были секундные неуспевания подгрузки текстур.
На всякий случай пересоберу cs
Получил ошибку
$ lldb -- ./hl2_launcher
Traceback (most recent call last):
File "
_start ld-linux-aarch64.so.1
_start:
-> 0xfffff7fdadf0 <+0>: bti c
0xfffff7fdadf4 <+4>: mov x0, sp
0xfffff7fdadf8 <+8>: bl 0xfffff7fdb7c0 ; _dl_start at rtld.c:527:1
0xfffff7fdadfc <+12>: mov x21, x0Решил еще раз через gdm поиграть, через очень большое время словил вылет: Произошло когда уже решил выключить игру. Thread 1 "hl2_launcher" received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt
this=0xffffe965d590 <g_ShaderAPIDX8>, pMaterial=0xaaaaaadca558)
at ../materialsystem/shaderapidx9/shaderapidx8.cpp:12361
this=0xfffff0814b10 <g_MaterialSystem+9344>, iMaterial=0xaaaaaadca558,
proxyData=0x0) at ../materialsystem/cmatrendercontext.cpp:2253
this=0xfffff0812690 <g_MaterialSystem>, pMaterial=0xaaaaba03d718)
at ../materialsystem/cmaterialsystem.cpp:5065
__in_chrg=<optimized out>) at ../materialsystem/cmaterial.cpp:518
__in_chrg=<optimized out>) at ../materialsystem/cmaterial.cpp:544
pMaterial=0xaaaaba03d718) at ../materialsystem/cmaterial.cpp:450
this=0xfffff08129d8 <g_MaterialSystem+840>)
at ../materialsystem/cmaterialdict.cpp:166
this=0xfffff08129d8 <g_MaterialSystem+840>)
at ../materialsystem/cmaterialdict.cpp:48
--Type
this=0xffffffffd630) at ../appframework/AppSystemGroup.cpp:325
at ../appframework/AppSystemGroup.cpp:469
at ../appframework/AppSystemGroup.cpp:383
at ../appframework/posixapp.cpp:158
at ../appframework/AppSystemGroup.cpp:380
at ../launcher/launcher.cpp:1493
at ../launcher_main/main.cpp:297
(gdb)
А этот краш при выключении игры существует везде, не интересно. Но тоже надо пофиксить конечно. Чуть позже займусь этим
Ну больше мне ничего не получилось поймать, на debug видимо все работает стабильно, кроме выше перечисленных особенностей( Мне получается лучше закрыть эту ветку? (кстати почему-то некоторые debug бинарники занимают значительно больше места чем такие же release)
@ArtemS2 потому что получается больше кода и все символы отладочные(названия функций пишутся, переменных и т д)
@nillerusr Пересобрал через clang компилятор , (CXX=clang CC=clang ./waf configure -T release --64 --enable-opus --prefix=out) получил ошибку при запуске .
./hl2_launcher -game hl2 bin/libtier0.so: undefined symbol: _ZTVN10cxxabiv120si_class_type_infoE Failed to load the launcher bin/launcher.so: cannot open shared object file: No such file or directory Failed to load the launcher
Проверил все несколько раз, ошибка повторяется.
Почисти сборку
А что делать если ./waf clean не помогает?)
кхм, менять дистр?
git clean -dxf должен почистить до исходного состояния p.s. и проблема не в этом, но что-то гуглится p.p.s. д.б. CXX=clang++ релизная сборка с clang (aarch64) у меня крэшится примерно c той же частотой что релизная gcc (т.е. практически сразу, gcc с debug вроде работает), но у меня системный драйвер panfork, а запускаю с блобом (libmali-valhall-g610-g13p0-x11-gbm.so), в логе ядра:
[55897.514967] mali fb000000.gpu: GPU Fault 0x04c00488 (GPU_SHAREABILITY_FAULT) in AS1 at 0x000000013a9755bf
ASID_VALID: false, ADDRESS_VALID: true
[55897.515008] mali fb000000.gpu: GPU Fault 0x04c00488 (GPU_SHAREABILITY_FAULT) in AS2 at 0x000000013a9755bf
ASID_VALID: false, ADDRESS_VALID: true
[55897.515284] mali fb000000.gpu: GPU Fault 0x20c00488 (GPU_SHAREABILITY_FAULT) in AS2 at 0x000000015e88d5bf
ASID_VALID: false, ADDRESS_VALID: true
может в фоне оболочка чего запускает (GL-й screensaver точно мешал), с другой стороны gcc-й debug вроде норм (ну по крайней мере несопоставимо стабильней)
@rox4d да незачем тут git clean. Ну и да если у тебя драйвер фэйлится, то я тут причем?) У него явно видно, что дело не в дровах. Насчет твоего случая я не знаю репорти разрабам драйверов
Ну и да если у тебя драйвер фэйлится, то я тут причем?)
Да я собственно никого не обвиняю, мне пока не очевидно что это причина а не следствие, попробую в gdb поймать, может виднее будет p.s. из под gdb оно не крэшиться а виснет, но похоже дело действительно в драйвере (который libmali-valhall-g610-g13p0-x11-gbm.so), т.к. с panfork и clang релиз работает, при выходе правда "Ошибка сегментирования" и вроде повторяемая
С CXX=clang++ опцией пока лучший вариант, вылетов нет, есть редкие микрофризы и статтеры. FPS выше , чем gcc debug. Мне кажется , что бага всё-таки есть, но в текущем виде просто сменилась на короткие рандомные подвисания, поймать такое в отладке, наверное будет очень сложно.
@ArtemS2 подсвисания и так были везде на arm. А вот касательно debug билда может быть такое, что вообще ты там это никогда в жизни не словишь, потому что это опять же другая генерация кода и другое поведения. Нарушение стандарта c/c++ может оборачиваться в подобную проблему. На каких-то платформах это может проявлятся, на каких-то нет. Где-то может быть банально ошибка компилятора, где-то компилятор может увидеть нарушение стандарта и учесть это при компиляции. Короче не все так просто, да.
Бага скорее всего есть, вопрос только в компиляторе или у меня. Потому что никто я собирал на macos с gcc под aarch64 и там опять же такой херни не было. И до этого люди у меня на малинку тоже собирали, не было таких проблем. Есть даже сервера которые хостятся на aarch64 и там тоже такой нету такой же проблемы( правда сервера это не много другое все же, т.к. там не все участки кода проблемные могут задействоваться конечно ).
Как говорил мой знакомый, айти - это творческая хуйня.
Ты мог вообще какой-то абсолютно случайный баг поймать, который зависит от работы драйверов вообще, косвенно конечно, не напрямую. Все это отлаживать больно особенно когда... Кхм стоп а может ты можешь дать доступ мне по ssh к скрину с запущенным gdb? Так найти проблему будет гораздо легче
@nillerusr , нужно сделать скрины сессии под debug бинарниками (выхлоп консоли gdm)? В теории (если нужно) я могу организовать доступ по ssh к своему одноплатнику, но боюсь у меня это возможно только через openvpn туннель. Если нужны только скрины degug сессии, то нравное может быть проще скинуть через телегу или дискорд?
@ArtemS2 да кстати, лучше пиши в тг, ник тот же
Hello, I'm in trouble! An error occurs when aiming. Error: SV_PackEntity: SnagChangeFrameList returned null https://drive.google.com/file/d/1gT6CpH8dGO_cKOb8A2PSVyXpfRYXgxU4/view?usp=sharing - screenshot
https://drive.google.com/file/d/1K6vlVmQQ1WMpIrr_kL6rIlg2OBZpA9KL/view?usp=sharing - engine logs
https://drive.google.com/file/d/1CTpIkgE7qU39wGAju7SUeKAWNPVQqlZi/view?usp=sharing - my system
https://drive.google.com/file/d/1NJEj52nkgzaoGJLb5rYGxT1oTDCWUA_7/view?usp=sharing - sys.log