FColor constructor crash

Hi Everyone,

We’ve just received a crash dump from one of our players and it seems very strange. It seems to occur from the FColor constructor that takes a FLinearColor& as an argument.

FColor(const FLinearColor& C)
	// put these into the body for proper ordering with INTEL vs non-INTEL_BYTE_ORDER
{
	->R = FMath::Clamp(FMath::TruncToInt(FMath::Pow(C.R,1.0f / 2.2f) * 255.0f),0,255);
	G = FMath::Clamp(FMath::TruncToInt(FMath::Pow(C.G,1.0f / 2.2f) * 255.0f),0,255);
	B = FMath::Clamp(FMath::TruncToInt(FMath::Pow(C.B,1.0f / 2.2f) * 255.0f),0,255);
	A = FMath::Clamp(FMath::TruncToInt(       C.A              * 255.0f),0,255);
}

This is the Output message I see in the Output window:

Unhandled exception at
0x000007FED49C6CD5 (msvcr120.dll) in
PoolNationFX.exe.3620.dmp: 0xC000001D:
Illegal Instruction.

This appears to be an AMD chipset issue. When I look at the dissasembly it’s on the instruction ‘vpunpckldq’.

I’ve noticed a selection of AMD driver/chipset issues related to the Editor itself on the forums but nothing to do with packaged games and/or FColor.

I’m going to go through and change any calls to this constructor to use FLinearColor::ToFColor(), but is there any information or anything we should know about things like this?

Thanks

Matt

Hello Milly01,

Thank you for reporting this. Do you have access to the entire crash dump? If so, that would be helpful information. I’ve not seen anything about this yet so I’ll have to look into it but that may be able to give me a good place to start.

I only have access to the minidump. I can send it directly to you if that’s ok as I wouldn’t be able to post it here.

That would be fine. You can send it to me in a private message on our forums.

Unfortunately that minidump doesn’t provide much information. Have you attempted reproducing the crash at all? If we could get a reproduction case (even if it does end up being AMD specific) we should be able to take a look at fixing it.

Also, have you been able to test your workaround of changing the calls in the constructor? I would be interested to know if that fixes the issue.

Edit: Fixed a typo

We haven’t heard from you in a while, Milly01. Have you had a chance to look into the topics mentioned in my previous comment? Please let me know of any information you can provide. In the meantime, I’ll be marking this issue as resolved for tracking purposes.

No, we haven’t been able to reproduce it. It seems quite rare and random and we’ve never encountered the issue internally, so I can’t really confirm whether the workaround was effective or not.

If we get any more reports of it i’ll see if I can get any more information about it.