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

Release v2.13.3 introduced strange image/render batching issues #644

Closed
Weedshaker opened this issue Sep 29, 2019 · 8 comments · Fixed by #656
Closed

Release v2.13.3 introduced strange image/render batching issues #644

Weedshaker opened this issue Sep 29, 2019 · 8 comments · Fixed by #656

Comments

@Weedshaker
Copy link
Contributor

Weedshaker commented Sep 29, 2019

The latest release improved performance with #641 but also introduced strange image batching behavior, see screenshot below.

  • Phaser version(s): 2.13.3

  • Live example:
    Image from iOS
    (https://tarutarolegends.com/ but I had to roll it back to version 2.13.2)

  • What steps produce the bug: use game.renderer.setTexturePriority (+ picture atlas) with newest release gives strange batching behaviors

  • What should happen: pictures should not get mangled up
    Image from iOS (1)

  • What happens instead: mangling of pictures

Please, have a look, I am also gonna investigate further asap. THX

@Weedshaker
Copy link
Contributor Author

Weedshaker commented Oct 3, 2019

I kept analyzing it and I am sure that the whole issue is connected with #641 + texture batching and it is also certain that setTexturePriority did not have those strange effects with version v2.13.2. Now some textures get batched wrongly and mixed up and some texture just don't even bother to appear.

  1. setTexturePriority + v2.13.2 => no problem
  2. setTexturePriority + v2.13.3 => displaying textures wrongly or not at all
  3. setTexturePriority turned off + v2.13.3 => no problem

image
above the barrel and the drag weapon background are missing

image
here the kappa enemy is getting mixed up with the items picture atlas

...and the whole issue is even not consistent between devices...

@samme + @photonstorm , I would say that the latest release is not usable for games which use texture batching (setTexturePriority) but we would have to try to reproduce this with an other game.

@Weedshaker
Copy link
Contributor Author

@jamieallen1234 I would like to have an exact description why you made the breaking changes at #641 and why the following would have become obsolete:

bc4ab92
if (PIXI.WebGLRenderer.textureArray[baseTexture.textureIndex] != baseTexture)
+
if (PIXI.WebGLRenderer.textureArray[textureIndex] != baseTexture)

obviously, this broke my whole texture batching, as you can see above.
@samme + @photonstorm , I understand that phaser-ce has no priority anymore, but there still are some Patreons like me, who hope that Pull requests are handled with care. THX!

@samme
Copy link
Collaborator

samme commented Jan 20, 2020

I had assumed that multi-texture rendering had never worked entirely correctly (#231, #232) and that most authors weren't using it.

#641 solved the outstanding problem of poorer WebGL performance compared to Phaser 2.6.2 (#356). I should have marked it a breaking change.

If we revert #641 then we'll reintroduce some multi-texture bugs (#211, #230, #231, #232).

@Weedshaker
Copy link
Contributor Author

Weedshaker commented Jan 21, 2020

@samme , did you look at the code changes made at #641? PLEASE, could anybody @photonstorm or @englercj answer why those two big IF-blocks (bc4ab92#diff-265a5e202468899001aca007a9da7cba) were written/necessary? For me #641 looks just like a hack, removing important blocks of code for the sake of a little performance and breaking image batching.

@photonstorm
Copy link
Collaborator

The majority of the changes in #641 looks fine, although I can't see the reason for moving the FastSpriteBatch texture index check to outside the children loop. I also can't see why the if blocks were removed from the WebGLSpriteBatch file. SpriteBatch is a different path entirely to FastSpriteBatch, so removing them literally removes multi-texture support for any sprites using that path.

If someone has a small example I can test with (ideally made using assets from the examples repo), then I can look at this further.

@samme
Copy link
Collaborator

samme commented Jan 23, 2020

I don't have an example reproducing the bug. https://samme.github.io/phaser-examples-mirror/sprites/multi%20texture%20example.html looks correct.

@Weedshaker
Copy link
Contributor Author

I made a simple example: https://github.com/Weedshaker/phaser-ce_issue-644 the result can be seen here: https://weedshaker.github.io/phaser-ce_issue-644/

As expected the behavior between the two version is different.

@Weedshaker
Copy link
Contributor Author

Weedshaker commented Feb 12, 2020

@photonstorm , do you need anything else? It would be fantastic if you could help us here.

@samme samme closed this as completed in #656 Mar 5, 2020
samme added a commit that referenced this issue Mar 5, 2020
Reverting bugs introduced by PR #641 mentioned at issue #644
dhashvir pushed a commit to dhashvir/phaser-ce that referenced this issue Sep 15, 2020
commit 1011b38
Author: samme <samme@users.noreply.github.com>
Date:   Wed Jul 29 12:17:00 2020 -0700

    Add missing Game#forceSingleRender

commit c3acb51
Merge: f328883 729a7d4
Author: samme <samme@users.noreply.github.com>
Date:   Tue Jul 28 09:19:35 2020 -0700

    Merge pull request phaserjs#677 from jorginius/video-constraints

    getUserMedia constraints

commit 729a7d4
Merge: b627fa3 f328883
Author: samme <samme@users.noreply.github.com>
Date:   Tue Jul 28 09:18:01 2020 -0700

    Merge branch 'master' into video-constraints

commit f328883
Merge: 74deea8 d4f6784
Author: samme <samme@users.noreply.github.com>
Date:   Tue Jul 28 09:00:25 2020 -0700

    Merge pull request phaserjs#676 from jorginius/video-crossorigin

    crossorigin attribute on video

commit b627fa3
Author: Jorge Rodríguez <jorge@rodriguezmoreno.com>
Date:   Mon Jul 27 23:20:58 2020 +0200

    Indentation

commit d4f6784
Author: Jorge Rodríguez <jorge@rodriguezmoreno.com>
Date:   Mon Jul 27 11:07:28 2020 +0200

    crossorigin attribute on video

commit d16a48c
Author: Jorge Rodríguez <jorge@rodriguezmoreno.com>
Date:   Mon Jul 27 13:08:34 2020 +0200

    getUserMedia constraints

commit 74deea8
Merge: 6db6a8b b70d045
Author: samme <samme@users.noreply.github.com>
Date:   Wed Jul 22 11:12:29 2020 -0700

    Merge pull request phaserjs#674 from photonstorm/dependabot/npm_and_yarn/resources/docstrap-master/lodash-4.17.19

    Bump lodash from 4.17.13 to 4.17.19 in /resources/docstrap-master

commit b70d045
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Jul 16 10:34:00 2020 +0000

    Bump lodash from 4.17.13 to 4.17.19 in /resources/docstrap-master

    Bumps [lodash](https://github.com/lodash/lodash) from 4.17.13 to 4.17.19.
    - [Release notes](https://github.com/lodash/lodash/releases)
    - [Commits](lodash/lodash@4.17.13...4.17.19)

    Signed-off-by: dependabot[bot] <support@github.com>

commit 6db6a8b
Merge: e0d385d 84ed522
Author: Richard Davey <rich@photonstorm.com>
Date:   Wed Jun 17 10:32:07 2020 +0100

    Merge pull request phaserjs#671 from photonstorm/release/v2.16.0

    Release Phaser CE v2.16.0

commit 84ed522
Author: samme <samme@users.noreply.github.com>
Date:   Mon Jun 1 12:09:24 2020 -0700

    Build Phaser CE v2.16.0

commit 63abf93
Author: samme <samme@users.noreply.github.com>
Date:   Mon Jun 1 11:16:58 2020 -0700

    ESLint

commit db9971d
Author: samme <samme@users.noreply.github.com>
Date:   Mon Jun 1 11:12:06 2020 -0700

    Bump version

commit f0562a6
Author: samme <samme@users.noreply.github.com>
Date:   Mon Jun 1 11:07:50 2020 -0700

    'check-version' script

commit 12699d2
Author: samme <samme@users.noreply.github.com>
Date:   Mon Jun 1 10:56:52 2020 -0700

    Links

commit e0d385d
Author: samme <samme@users.noreply.github.com>
Date:   Mon Jun 1 09:54:36 2020 -0700

    New Features

commit 0b3db19
Author: samme <samme@users.noreply.github.com>
Date:   Mon Jun 1 09:53:24 2020 -0700

    Add Phaser.Utils.Debug#state

commit 37c4bec
Author: samme <samme@users.noreply.github.com>
Date:   Sun May 31 12:39:51 2020 -0700

    Docs: StateManager#onStateChange

commit fc55d9e
Author: samme <samme@users.noreply.github.com>
Date:   Sun May 31 12:39:33 2020 -0700

    ES5 syntax

commit 7e890d8
Author: samme <samme@users.noreply.github.com>
Date:   Sat May 30 13:37:03 2020 -0700

    Links

commit c18e60e
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 14:00:45 2020 -0700

    Unreleased

commit 66da707
Merge: bdf8be1 7125ce9
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 13:48:07 2020 -0700

    Merge branch 'breaking/onStateChange-order'

commit bdf8be1
Merge: b7a9691 4b8759c
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 13:47:50 2020 -0700

    Merge branch 'breaking/mouseWheel-disable'

commit b7a9691
Merge: ce367d4 42fd185
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 13:46:57 2020 -0700

    Merge branch 'feature/camera-fadeIn'

commit ce367d4
Merge: cb60a2e 93e647a
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 13:46:45 2020 -0700

    Merge branch 'feature/web-audio-interrupted'

commit 93e647a
Author: samme <samme@users.noreply.github.com>
Date:   Wed May 27 14:03:15 2020 -0700

    Web Audio changes

    - Resume context after game resume
    - Add onStateChange signal
    - Dispose all signals when destroying
    - Rename resumeWebAudioIfSuspended(), replace resumeWebAudio()!
    - Add private methods gamePaused(), gameResumed()

    Should fix phaserjs#667

commit cb60a2e
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 09:28:02 2020 -0700

    Format gameInfo()

commit 55ed869
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 09:27:33 2020 -0700

    Fix docs description for `all` argument

commit 8db244a
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 09:27:13 2020 -0700

    CDN, news

commit 9adf634
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 09:26:20 2020 -0700

    Remove Bower

commit 4b8759c
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 09:25:56 2020 -0700

    Disable mouse wheel handler by default

commit 7125ce9
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 09:24:32 2020 -0700

    Dispatch onStateChange before scene init()

commit 42fd185
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 29 09:22:47 2020 -0700

    Add Camera#fadeIn() etc.

commit d3ecc9a
Merge: d623f3a a1566e0
Author: Richard Davey <rich@photonstorm.com>
Date:   Wed May 27 12:25:46 2020 +0100

    Merge pull request phaserjs#670 from photonstorm/release/v2.15.1

    Release Phaser CE v2.15.1

commit a1566e0
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 11:52:29 2020 -0700

    Build Phaser CE v2.15.1

commit 3202942
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 11:43:12 2020 -0700

    And CHANGELOG

commit ee2edcc
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 11:40:30 2020 -0700

    Add 'check-version' script

commit 5a22757
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 11:33:49 2020 -0700

    Resolve comment style

commit 37b4b25
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 11:27:01 2020 -0700

    Turn off valid-jsdoc for now

commit ad70656
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 11:25:53 2020 -0700

    Bump version

commit 7e6c342
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 11:24:09 2020 -0700

    Links

commit d623f3a
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 10:07:24 2020 -0700

    Reformat

commit 85793a0
Author: samme <samme@users.noreply.github.com>
Date:   Thu May 14 18:54:47 2020 -0700

    Sort rules

commit 8984131
Author: samme <samme@users.noreply.github.com>
Date:   Thu May 14 16:15:29 2020 -0700

    Fix JSDoc syntax

commit 2ccf012
Author: samme <samme@users.noreply.github.com>
Date:   Thu May 14 14:48:47 2020 -0700

    Rule changes

    - padded-blocks
    - no-multiple-empty-lines
    - multiline-comment-style
    - valid-jsdoc

commit 04b8040
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 09:49:07 2020 -0700

    New Features

commit cd86b18
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 09:47:33 2020 -0700

    Add Debug#gameInfo()

commit e1d71b3
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 09:47:07 2020 -0700

    Brace style

commit 7b8ccd3
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 09:45:37 2020 -0700

    Move maxPointers

commit ec4d328
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 15 08:50:52 2020 -0700

    Count active pointers

commit 5a380fd
Merge: f21a2ad 3567a50
Author: samme <samme@users.noreply.github.com>
Date:   Wed May 13 14:17:33 2020 -0700

    Merge branch 'feature/data-cache'

commit 3567a50
Author: samme <samme@users.noreply.github.com>
Date:   Wed May 13 14:17:13 2020 -0700

    Add new data cache

commit f21a2ad
Author: samme <samme@users.noreply.github.com>
Date:   Wed May 13 11:39:52 2020 -0700

    Bug Fixes

commit 9b76df4
Author: samme <samme@users.noreply.github.com>
Date:   Tue May 12 13:44:52 2020 -0700

    Exit finishedLoading() if game is destroyed

    Fixes phaserjs#666

    No signals are dispatched (API change)

commit bf5493e
Author: samme <samme@users.noreply.github.com>
Date:   Sun May 3 13:39:49 2020 -0700

    mainpagetitle

commit 251b6bc
Author: samme <samme@users.noreply.github.com>
Date:   Sun May 3 13:39:26 2020 -0700

    Fix the main page title once and for all

commit 8f6296d
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 1 16:45:31 2020 -0700

    Unreleased

commit 4b28a7b
Merge: e384399 78dc127
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 1 16:40:22 2020 -0700

    Merge branch 'fix/pointercancel'

commit e384399
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 1 16:40:12 2020 -0700

    Allow no-prototype-builtins

    We're all about that

commit 78dc127
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 1 16:38:33 2020 -0700

    Add Phaser.Utils.Debug#inputHandler

commit 1627731
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 1 16:38:15 2020 -0700

    Show pointer `identifier` and `pointerId`

commit 2ecf6dd
Author: samme <samme@users.noreply.github.com>
Date:   Fri May 1 16:32:46 2020 -0700

    Handle pointercancel

    Adds

    - Phaser.MSPointer#onPointerCancel
    - Phaser.MSPointer#pointerCancelCallback

commit 7392fc2
Author: samme <samme@users.noreply.github.com>
Date:   Mon Apr 27 13:06:59 2020 -0700

    Refactor

commit 341ecf0
Author: samme <samme@users.noreply.github.com>
Date:   Thu Apr 23 13:50:28 2020 -0700

    Unreleased

commit b48534c
Author: samme <samme@users.noreply.github.com>
Date:   Thu Apr 23 13:48:54 2020 -0700

    Add `all` param to Tilemap#searchTileIndex

commit 2736983
Author: samme <samme@users.noreply.github.com>
Date:   Thu Apr 23 12:15:44 2020 -0700

    Refactor

commit d7473b7
Author: samme <samme@users.noreply.github.com>
Date:   Thu Apr 2 08:34:09 2020 -0700

    Fix info text

commit d846624
Author: samme <samme@users.noreply.github.com>
Date:   Thu Apr 2 08:33:34 2020 -0700

    Examples

commit 9433730
Merge: d51e497 939a616
Author: samme <samme@users.noreply.github.com>
Date:   Wed Mar 25 12:24:06 2020 -0700

    Merge pull request phaserjs#660 from photonstorm/dependabot/npm_and_yarn/resources/docstrap-master/moment-2.19.3

    Bump moment from 2.18.1 to 2.19.3 in /resources/docstrap-master

commit d51e497
Author: samme <samme@users.noreply.github.com>
Date:   Wed Mar 25 12:21:00 2020 -0700

    Unreleased

commit 38fa034
Author: samme <samme@users.noreply.github.com>
Date:   Wed Mar 25 12:20:25 2020 -0700

    Add callback args to RenderTexture#getImage

commit a6ed7b0
Merge: 421d2d5 cf3e488
Author: samme <samme@users.noreply.github.com>
Date:   Wed Mar 25 12:11:12 2020 -0700

    Merge branch 'feature/maxUpdates-etc'

commit 421d2d5
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 13 09:05:06 2020 -0700

    Add getBase64() and getImage(), etc.

commit ae94952
Author: samme <samme@users.noreply.github.com>
Date:   Wed Mar 25 10:28:10 2020 -0700

    Unreleased

commit cf3e488
Author: samme <samme@users.noreply.github.com>
Date:   Wed Mar 25 07:11:18 2020 -0700

    Game and TimeStep changes:- Add Game#maxUpdates- Rename to Time#preUpdate (private)- Rename to Time#preRender (private)- Docs fixes

commit d83d1f8
Author: samme <samme@users.noreply.github.com>
Date:   Wed Mar 25 07:11:43 2020 -0700

    Update banner

commit 7c9edad
Merge: d7ae85a 1d35ca9
Author: Richard Davey <rich@photonstorm.com>
Date:   Tue Mar 10 14:40:12 2020 +0000

    Merge pull request phaserjs#661 from photonstorm/release/v2.15.0

    Release Phaser CE v2.15.0

commit 1d35ca9
Merge: e030f61 d7ae85a
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 6 12:41:01 2020 -0800

    Merge branch 'master' into release/v2.15.0

commit d7ae85a
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 6 12:40:39 2020 -0800

    Avoid brace expansions

commit e030f61
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 6 12:26:50 2020 -0800

    Build Phaser CE v2.15.0

commit ee7fb96
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 6 12:01:03 2020 -0800

    Bump version

commit c72460a
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 6 12:23:43 2020 -0800

    Fix jsdoc error

commit 1f36fbb
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 6 11:54:11 2020 -0800

    Test scripts

commit 1cdb78b
Author: samme <samme@users.noreply.github.com>
Date:   Fri Mar 6 11:49:48 2020 -0800

    Bug Fixes

commit 90824ef
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 12:44:44 2020 -0800

    Unreleased

commit d58c9a7
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 12:44:38 2020 -0800

    Remove skipTypeChecks, etc.

commit f173815
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 11:23:29 2020 -0800

    Peer dep

commit 727e401
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 11:21:16 2020 -0800

    Update load-grunt-config

commit 6b760e9
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 11:17:02 2020 -0800

    Remove yuidocjs

commit e4a41b6
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 11:15:04 2020 -0800

    npm audit fix

commit 9468a3b
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 11:12:53 2020 -0800

    Install fsevents

commit ca3c0f2
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 11:10:54 2020 -0800

    npm install

commit a38dd09
Merge: f34218f 7c71e54
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 09:52:06 2020 -0800

    Merge pull request phaserjs#656 from Weedshaker/master

    Reverting bugs introduced by PR phaserjs#641 mentioned at issue phaserjs#644

commit 939a616
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Thu Mar 5 17:51:40 2020 +0000

    Bump moment from 2.18.1 to 2.19.3 in /resources/docstrap-master

    Bumps [moment](https://github.com/moment/moment) from 2.18.1 to 2.19.3.
    - [Release notes](https://github.com/moment/moment/releases)
    - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
    - [Commits](moment/moment@2.18.1...2.19.3)

    Signed-off-by: dependabot[bot] <support@github.com>

commit f34218f
Merge: b1df3de 15f31de
Author: samme <samme@users.noreply.github.com>
Date:   Thu Mar 5 09:51:04 2020 -0800

    Merge pull request phaserjs#650 from photonstorm/dependabot/npm_and_yarn/resources/docstrap-master/lodash-4.17.13

    Bump lodash from 4.17.4 to 4.17.13 in /resources/docstrap-master

commit 7c71e54
Author: Silvan Strübi <silvan.struebi@gmail.com>
Date:   Mon Jan 20 18:11:57 2020 +0100

    reverted phaserjs#641

    bug got introduced by phaserjs#641

commit 60b089a
Author: Silvan Strübi <silvan.struebi@gmail.com>
Date:   Mon Jan 20 18:09:26 2020 +0100

    Update WebGLSpriteBatch.js

    reverted phaserjs#641

commit 80fee66
Author: Silvan Strübi <silvan.struebi@gmail.com>
Date:   Mon Jan 20 18:04:57 2020 +0100

    Update CHANGELOG.md

commit 15f31de
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jan 7 20:44:19 2020 +0000

    Bump lodash from 4.17.4 to 4.17.13 in /resources/docstrap-master

    Bumps [lodash](https://github.com/lodash/lodash) from 4.17.4 to 4.17.13.
    - [Release notes](https://github.com/lodash/lodash/releases)
    - [Commits](lodash/lodash@4.17.4...4.17.13)

    Signed-off-by: dependabot[bot] <support@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants