Search Issue Tracker

Fixed in 2019.1.X

Fixed in 2018.3.X

Votes

1

Found in

2018.3.0b1

2018.3.0b7

Issue ID

1095938

Regression

Yes

[UWP][IL2CPP] Empty animation state offsets components in a master build

Steps to reproduce:
1. Download 1095938_repro.zip
2. Change platform to UWP
3. Build "SampleScene" with IL2CPP backend
4. Open VS solution
5. Build VS solution (Master, x64, Local machine)

Expected results: Game objects do not change there position.
Actual results: Game objects which are animated are offset on Z axis when animation state with no clip is playing.

Reproduced with: 2019.1.0a7, 2018.3.0b8
Not reproducible with: 2018.2.14f1
Regression introduced in: 2018.3.0b1

UPDATE:

I've root-caused the issue as a Microsoft compiler bug. It occurs when an Animation job is initialized with the GameObject's Transform were the 'y' position value is copied into both the 'y' and 'z' positions of the destination vector (the actual 'z' position is lost). Since Animation jobs typically modify the Transform data (according to the animation graph) this bug is only noticeable for "empty" animations.

The mangled copy operation comes from bad assembly code-gen, which appears to be a confluence of SSE Intrinsics and faulty compiler in-lining optimizations, hence it only repros in Master builds. I've implemented a fix that works around the compiler bug by circumventing the SSE code, which weren't needed in this operation to begin with. As a bonus, the new copy operation removes about 8 unnecessary assembly instructions.

Comments (2)

  1. timke

    Nov 07, 2018 17:30

    The fix is in review, and I'll work to get it into 2018.3 as quickly as possible, but I don't know which specific release it'll make it into.

  2. Dark-1-Games

    Nov 07, 2018 14:38

    Awesome news! When would we be able to test the fix? Will it happen in the next betas?

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.