Novum / vkQuake

Vulkan Quake port based on QuakeSpasm
GNU General Public License v2.0
1.83k stars 222 forks source link

Game freezes at the end of E1M6 #33

Closed xyz32 closed 8 years ago

xyz32 commented 8 years ago

The game freezes at the end of E1M6 (entering the last portal)

The game shows the level completions status screen and freezes before loading the next map. Map E1M7 works in a multiplier match.

I used the latest git code and the latest vulkan sdk 1.0.21.1 OS: Fedora 24 CPU: AMD 8 cores GPU: NVIDIA (latest proprietary drivers) RAM: 16G

There is no console output during the crash. This is the console output after the game starts:

./run.sh 
Command line: ./vkquake
Found SDL version 2.0.4
Detected 8 CPUs.
Quake 1.09 (c) id Software
GLQuake 1.00 (c) id Software
FitzQuake 0.85 (c) John Fitzgibbons
FitzQuake SDL port (c) SleepwalkR, Baker
QuakeSpasm 0.92.0 (c) Ozkan Sezer, Eric Wasylishen & others
vkQuake 0.30.0 (c) Axel Gneiting
Host_Init
Playing registered version.
Console initialized.
UDP Initialized
Server using protocol 666 (FitzQuake)
Exe: 19:15:46 Jul 31 2016
256.0 megabyte heap

Vulkan Initialization
Vendor: NVIDIA
Device: GTX 960
Creating command buffers
Creating swap chain
Creating render passes                                                                                                                                                                                                                      
Creating depth buffer                                                                                                                                                                                                                       
Creating frame buffers                                                                                                                                                                                                                      
Initializing staging                                                                                                                                                                                                                        
Creating descriptor set layouts                                                                                                                                                                                                             
Initializing dynamic vertex buffers                                                                                                                                                                                                         
Initializing dynamic index buffers                                                                                                                                                                                                          
Initializing dynamic uniform buffers                                                                                                                                                                                                        
Initializing samplers                                                                                                                                                                                                                       
Creating pipeline layouts                                                                                                                                                                                                                   
Creating pipelines                                                                                                                                                                                                                          
Warning: joystick missing controller mappings: MAD CATZ ,Ltd. Mad Catz Game Controller                                                                                                                                                      

Sound Initialization                                                                                                                                                                                                                        
SDL audio spec  : 44100 Hz, 512 samples, 2 channels                                                                                                                                                                                         
SDL audio driver: pulseaudio - HDA NVidia Digital Stereo (HDMI), 32768 bytes buffer                                                                                                                                                         
Audio: 16 bit, stereo, 44100 Hz                                                                                                                                                                                                             
CDAudio disabled at compile time                                                                                                                                                                                                            

========= Quake Initialized =========                                                                                                                                                                                                       

execing quake.rc                                                                                                                                                                                                                            
execing default.cfg                                                                                                                                                                                                                         
execing config.cfg                                                                                                                                                                                                                          
couldn't exec autoexec.cfg                                                                                                                                                                                                                  
3 demo(s) in loop                                                                                                                                                                                                                           
Loading game from /media/data/games/quake/vkQuake/Quake/id1/s0.sav...                                                                                                                                                                       

FITZQUAKE 0.85 SERVER (51103 CRC)                                                                                                                                                                                                           

The Door To Chthon                                                                                                                                                                                                                          
Using protocol 666                                                                                                                                                                                                                          
Couldn't find a cdrip for track 4                                                                                                                                                                                                           
player exited the level                                                                                                                                                                                                                     
Couldn't find a cdrip for track 3                                                                                                                                                                                                           

FITZQUAKE 0.85 SERVER (51103 CRC)                                                                                                                                                                                                           

The House of Chthon                                                                                                                                                                                                                         
Using protocol 666                                                                                                                                                                                                                          
Couldn't find a cdrip for track 7
Novum commented 8 years ago

Does this happen if the map is loaded with map E1M6 as well or only if you play the game from the beginning?

xyz32 commented 8 years ago

Yes, it only happens when played from the beginning. Using map E1M6 works.

Sorry for the late response

xyz32 commented 8 years ago

Got some more info. The freeze only happens if at the end of the level when the status screen appears, you start pressing the fire button to jump to the next level. If you let the status screen to stay on for ~10 seconds and then press the fire button everything is good. On the other head if you wait for a long time 40-60 seconds and then press the fire button the game will also freeze.

mdeguzis commented 8 years ago

If you let the status screen to stay on for ~10 seconds and then press the fire button everything is good. On the other head if you wait for a long time 40-60 seconds and then press the fire button the game will also freeze.

Actually, I had the freeze once, and each other 2 times I loaded at the spot before I entered the portal in the floor, I mashed fire right away. Hard to pin down for sure. I must have loaded it 10 times. I am keeping the save before I enter the portal in case any more testing is needed. I am using a build from 1 day ago. I can nab the commit if need be from my Debian package.

mdeguzis commented 8 years ago

Update: I captured what was going on by tailing /tmp/dumps/steam_stdout.txt on SteamOS. I probably had to do this about 15 times to get it. Don't pay too* much attention to Segmentation fault /usr/games/vkquake -basedir "${BASE_DIR}"`, as that happens each time I exit the game, without damange to saves et. At some point that should be looked at.

I believe there is a bug with SDL / how Vulkan handles it? When the crash happens, sound glitches, the loading bar also gets stuck. The sound then stutters, and the game crashes.

Shutting down SDL sound

Log: https://gist.github.com/ProfessorKaos64/48a215127fc44242165a84b29f07e312

Novum commented 8 years ago

I believe it's an issue with submitting a command buffer referencing already freed resources. Getting validation layer reports as well and sometimes crashes. Will be fixed at some point, just needs some debugging.

Novum commented 8 years ago

This should be fixed with 30db23efe70d6df53969b393aaf0d9fd51f6f2c8

xyz32 commented 8 years ago

Confirmed, thank you.