Crache on first run
Brought to you by:
kirkbarnes,
krigssvin
Hello!
I compile game from sources (current trunk)
Copy all needed files by Readme_Linux.txt
After run game craches.
I recompiled with debug symbols and run game from gdb.
Backtrace below:
Thread 1 "quake2xp" received signal SIGSEGV, Segmentation fault.
BuildSurfaceNeighbours (surf=0x5555c8a3f448) at ../renderer/r_model.c:1058
1058 surf->polys->neighbours[i] = tempEdge->poly[j];
(gdb) bt
#0 BuildSurfaceNeighbours (surf=0x5555c8a3f448) at ../renderer/r_model.c:1058
#1 0x0000555555637008 in Mod_LoadFaces (l=0x5555c741b7e0) at ../renderer/r_model.c:1458
#2 0x0000555555639287 in Mod_LoadBrushModel (mod=0x5555c2889f20 <mod_known>, buffer=0x5555c741b7a8) at ../renderer/r_model.c:2113
#3 0x0000555555633344 in Mod_ForName (name=0x7fffffffcd20 "maps/base2.bsp", crash=true) at ../renderer/r_model.c:555
#4 0x000055555563d2f7 in R_BeginRegistration (model=0x7fffffffcdc0 "base2") at ../renderer/r_model.c:2803
#5 0x0000555555596434 in CL_PrepRefresh () at ../client/cg_view.c:238
#6 0x00005555555a26a1 in CL_Precache_f () at ../client/cl_main.c:1192
#7 0x00005555555c466f in Cmd_ExecuteString (text=0x7fffffffceb0 "precache") at ../qcommon/cmd.c:855
#8 0x00005555555c3149 in Cbuf_Execute () at ../qcommon/cmd.c:225
#9 0x00005555555a388b in CL_RefreshInputs () at ../client/cl_main.c:1508
#10 0x00005555555a3cf7 in CL_Frame_Async (msec=2) at ../client/cl_main.c:1641
#11 0x00005555555a3fd7 in CL_Frame (msec=2) at ../client/cl_main.c:1774
#12 0x00005555555cca0f in Qcommon_Frame (msec=2) at ../qcommon/common.c:1902
#13 0x0000555555664416 in main (argc=7, argv=0x7fffffffd528) at ../linux/sys.c:462
Anonymous
screen on crache moment
Yes, at the moment the code crashes under Linux, I will fix it soon.
With this patch game run without crache.
But change optimiszation to -O1 cause chrache again
таакккк очень интересно.....
инлайны убрал, только чтоб с -O0 собралось
падение в том месте, что в стартовом посте указано лечится вот этой строкой
poly->neighbours = (glpoly_t *)Mod_Hunk_Alloc(numVerts * sizeof(void ));
видимо, в коде много мест, где 32-х битные указатели на 64 нужно менять
Я понял. А с указателями да, пока что беда + я переносил код на гцц14 и переделал выделение памяти с ориентировкой на х64. На венде то все окей работает...
плюс еще вот с этим игра уже запускается, будучи собранной с -O2 (да и с -O3)
Пару уровней прошел - без вылетов пока
Last edit: Egor 2024-08-26
еще один фикс. Без него периодически падало, когда стреляешь во врага
Last edit: Egor 2024-09-22
О как! Окей....