[bfbf7ff9c]Crash on start-up

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: [bfbf7ff9c]Crash on start-up

Re: [bfbf7ff9c]Crash on start-up

by _mental_ » Fri Jan 18, 2019 4:10 am

Re: [bfbf7ff9c]Crash on start-up

by Graf Zahl » Fri Jan 18, 2019 3:16 am

In that case I vote for disabling optimization for VS2015. That can later easily be removed when we really want to move on to a more modern C++ standard.

Re: [bfbf7ff9c]Crash on start-up

by _mental_ » Fri Jan 18, 2019 2:50 am

In order to fix Windows x64 devbuilds we can disable optimization around turbo CVAR or rewrite this part using an intermediate volatile variable. Both solutions work for me.

Re: [bfbf7ff9c]Crash on start-up

by Graf Zahl » Thu Jan 10, 2019 11:46 am

That post was rather pointless. We have already confirmed that this is a compiler bug in Visual C++ 2015, but do not know a workaround yet how to escape it.

Re: [bfbf7ff9c]Crash on start-up

by Collegia Titanica » Thu Jan 10, 2019 11:14 am

Crashes for me too.

Re: [bfbf7ff9c]Crash on start-up

by Graf Zahl » Tue Jan 08, 2019 7:57 am

Inside a level the listener cannot be null because the camera cannot be null, so if it is null, the sound cannot really be a level sound. Yes, you are correct about that assumption, such a sound should not really play when there is no listener.

Re: [bfbf7ff9c]Crash on start-up

by _mental_ » Tue Jan 08, 2019 6:43 am

I wanted to submit the same change, but it was not enough. Listener can be null here as well.
This one is a bit tricky. Am I right that if type is not SOURCE_None, listener and level should not be null?

Re: [bfbf7ff9c]Crash on start-up

by Graf Zahl » Tue Jan 08, 2019 5:32 am

_mental_ wrote:Are you sure it's the same crash? At the moment it crashes for me in S_UpdateSounds() with listenactor being null.
This is completely unrelated to a potential code generation bug in VS2015.

I pushed a quick fix for this. Since the global timer needs to be moved out of the level struct anyway I'm not bothering with a complete fix for now.

Re: [bfbf7ff9c]Crash on start-up

by Nash » Tue Jan 08, 2019 5:22 am

Oh, I'm unsure about that. In that case I'll make a separate bug report with a crash log, to rule out bad compiler crash.

Re: [bfbf7ff9c]Crash on start-up

by _mental_ » Tue Jan 08, 2019 5:16 am

Are you sure it's the same crash? At the moment it crashes for me in S_UpdateSounds() with listenactor being null.
This is completely unrelated to a potential code generation bug in VS2015.

Re: [bfbf7ff9c]Crash on start-up

by Nash » Tue Jan 08, 2019 5:04 am

I just tried to build g73fd072d1 and I'm getting crash on startup too.

VS2017 Community 15.9.3
Yes, hard-deleted and re-generated build directory with CMake

Nothing, still crashes.

Re: [bfbf7ff9c]Crash on start-up

by Blzut3 » Sun Jan 06, 2019 9:25 pm

Graf Zahl wrote:Or we may simply unsupport VC++ 2015 for being buggy.
This is more or less fine except right now the build machine is stuck with 2015. Hoping to resolve before the end of this month. So far Microsoft partners (since Microsoft's site points to contacting partners for it) are just ignoring my inquiries for volume licensing, so going to try just calling Microsoft soon.

Re: [bfbf7ff9c]Crash on start-up

by Major Cooke » Sun Jan 06, 2019 10:57 am

Confirmed, I upgraded to VS2017 and ran CMake targeted for VS2017. It all works now.

Re: [bfbf7ff9c]Crash on start-up

by phantombeta » Sun Jan 06, 2019 6:44 am

Yeah, this is definitely a compiler bug. AppVeyor's VS2015 builds crash too, while the VS2017 builds don't.

Re: [bfbf7ff9c]Crash on start-up

by Graf Zahl » Sun Jan 06, 2019 6:43 am

Definitely a code generation error.

Here's the assembly output of the first bad section:

Code: Select all

	0f 5a d1	 cvtps2pd xmm2, xmm1
  00055	f2 0f 59 15 00
	00 00 00	 mulsd	 xmm2, QWORD PTR __real@3f847ae147ae147b
You can see the first instruction being fully there, but the second one is garbled (but still locatable), there's 3 bytes of garbage in between. To be honest, I don't know how to handle it, someone with a broken compiler needs to do this.
Or we may simply unsupport VC++ 2015 for being buggy.

Top