-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Better handling of processing 3d tiles #6364
Conversation
@lilleyse, thanks for the pull request! Maintainers, we have a signed CLA from @lilleyse, so you can review this at any time.
I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome. 🌍 🌎 🌏 |
I'm not sure why 3 of the tests fail in travis but not locally... I'll keep looking. |
Update CHANGES.md and add a unit test if possible. Are you also porting this to your refactor? |
4c28ef3
to
da03a4b
Compare
da03a4b
to
7a445ed
Compare
Fixed the tests. One of the files in the i3dm specs data folder was called I also updated CHANGES.md but didn't write a new test because it was too dependent on load order and the test started to get complicated.
Yeah these changes will fit in fine there. |
Do we want this in before 1.44? It will help loading if there are any Draco tilesets out there. Otherwise if it doesn't matter much I can target the |
If we are going to message Draco support, we should merge this. |
If this is making it in the release it needs to be merged tomorrow. @lilleyse who do you think should review this? |
@likangning93 given that you are slated to review some of the other 3D Tiles PRs maybe it makes sense to review this too? |
tiles[i - removeCount] = tile; | ||
} | ||
} | ||
tiles.length -= removeCount; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For whoever is reviewing, this code is based on a similar filter function in RequestScheduler
Ah I forgot @likangning93 is out today - @bagnell could you review today? |
While running a Draco compressed tileset we noticed that tiles seems to be streaming in reverse order. The problem was we were iterating over the processing queue in reverse order, mainly as a convenience since elements could be removed during iteration. In this tileset downloading tiles is much quicker than processing so the processing queue was stuffed with tiles and kept on processing the low priority tiles first.
The fix was to iterate in forward order and afterwards filter out tiles that are done processing.
Before/after: