Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance downgrade from 3.50.0-beta.10 to 3.50.0-beta.12 #5500

Closed
venarius opened this issue Jan 14, 2021 · 7 comments
Closed

Performance downgrade from 3.50.0-beta.10 to 3.50.0-beta.12 #5500

venarius opened this issue Jan 14, 2021 · 7 comments

Comments

@venarius
Copy link

venarius commented Jan 14, 2021

Version

  • Phaser Version: 3.51.0
  • Operating system: Windows 10
  • Browser: all

Description

When I upgraded from version 3.50.0-beta.10 to 3.51.0 I noticed that the performance of my game was considerably worse than on the older version.

I used specter.js to inspect the draw calls that the WebGL renderer was creating and found out that the new version made a whopping 113 (including draw calls) commands comparing to the 4 commands from the old version. It has probably something to do with the Multi-Texturing-Pipeline breaking.

I dug a bit deeper and found out, that it changed between 3.50.0-beta.10 and 3.50.0-beta.12. I hope that helps you out when trying to reduce the possible causes.

Example Test Code

https://codesandbox.io/s/phaser-3500-performance-webglmulti-jn318?file=/src/index.js

You can switch between the phaser versions there and then inspect them with the specter.js chrome extension. (16 vs 19 commands in this small example alone)

Additional Information

Specter Screenshots

From the new version:
Capture

From the old version:
Capture2

@gammafp
Copy link
Collaborator

gammafp commented Jan 14, 2021

There is a new Phaser version (3.51.0 ). You've tried?. Phaser page download

@photonstorm
Copy link
Collaborator

It would still do this under 3.51 because this example is switching between two pipelines (the multi pipeline and the graphics pipeline), and that is just how many gl ops it takes to do that switch.

@venarius
Copy link
Author

There is a new Phaser version (3.51.0 ). You've tried?. Phaser page download

Yes, like I have written, it is still under Version 3.51.0 but I managed to narrow it down to the versions the change / break happened.

@photonstorm
Copy link
Collaborator

It's not a break, it was fully intentional to split these pipelines apart.

@venarius
Copy link
Author

@photonstorm so is there any way I can get the old performance on the new version or would it require me to restructure my whole codebase? Or should I just stay on the old version for now?

@photonstorm
Copy link
Collaborator

Note to self: Could investigate providing a new pipeline which merges Multi and Graphics together, but maybe too late in the v3 dev cycle for this.

@photonstorm
Copy link
Collaborator

Thank you for submitting this issue. We have fixed this and the fix has been pushed to the master branch. It will be part of the next release (3.55). If you get time to build and test it for yourself we would appreciate that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants