mojira.dev

Lukas Mayrhofer

Assigned

No issues.

Reported

MC-40512 Stained glass panes are opaque in 3rd person mode Fixed MC-35811 shader info on F3 shows "blur.json" shader being active, while it actually isn't Invalid MC-35805 OS X: Pressing Del / Backspace on signs shows "DEL" character instead of deleting characters Fixed

Comments

Confirmed in 14w34c.
The mob spawner creates and discards thousands of entities per tick in superflat worlds, causing the reduced tick-speed.

I've investigated this issue a bit and was able to identify the culprit as the complex "mobSpawner" procedure.
The corresponding method is obfuscated as ara/a(qs, boolean, boolean, boolean) in the snapshot 14w33a.

In a superflat world, during a single invoke of that method, around 7000 instances of entities are created using reflection in the inner-most loop... per tick.

Inside this inner loop, after an Entity was created, a verification process follows, checking if that particular Entity is suitable for a randomly generated position.
If this verification process fails, the entity is dismissed and the inner-most loop continues to run far too "long".

I slightly modified this method by inserting an additional control-flow statement after a verification failure that jumps into one of the outer-loops that iterates the valid chunks.
This modification may not follow intended behavior, but significantly reduced the time spent on this method and stabilized the tick-rate back to normal.

13w47d didn't fix this issue.

Please reopen this issue. It wasn't fixed by 13w42b and seems to be a OS X-specific problem.

The debug snapshot fixed the performance issues for me too. 🙂

@andre: I basically compared the lightning engine of 1.5 to the one in 1.4.7. I identified mojang's fixes for some lightning issues as the cause of the performance issues and simply stripped those fixes out and released the modified bfz.class.

It seems that snapshot 13w10b still has considerably lower fps than 1.4.7.