Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

[core] Synchronize render passes and render tiles #15092

Merged
merged 2 commits into from
Jul 11, 2019

Conversation

pozdnyakov
Copy link
Contributor

@pozdnyakov pozdnyakov commented Jul 10, 2019

Before this change render passes were assigned for the whole layer at properties evaluation stage.

This caused problems, as layer render data are bound to the tile and these data might differ from tile to tile, depending on which tile has been updated by the tile worker and which has not been yet updated.

This change takes into consideration the actual render passes required for each tile and combines them for the layer render passes. Naturally, this change also introduces render pass check for each render layer in RenderLayer::render() implementations.

Fixes #15085

@pozdnyakov pozdnyakov force-pushed the mikhail_sync_render_passes branch from 6a3b4e9 to 796650a Compare July 10, 2019 16:06
@pozdnyakov pozdnyakov added Core The cross-platform C++ core, aka mbgl bug labels Jul 10, 2019
@friedbunny friedbunny added the needs changelog Indicates PR needs a changelog entry prior to merging. label Jul 10, 2019
@chloekraw chloekraw added the needs backport Indicates PR needs to be cherrypicked into a previous release branch. label Jul 10, 2019
Copy link
Contributor

@alexshalamov alexshalamov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pozdnyakov
Copy link
Contributor Author

@alexshalamov unfortunately bugs like that cannot be caught with render tests as these tests act in the map still mode. Also, the observed behavior depends a lot on the underlying platform i.e. how fast the tile workers complete their job.

Before this change render passes were assigned for the
whole layer at properties evaluation stage.

This caused problems, as layer render data are bound
to the tile and these data might differ from tile to
tile, depending on which tile has been updated by the
tile worker and which has not been yet updated.

This change takes into consideration the actual render
passes required for each tile and combines them for
the layer render passes. Naturally, this change also
introduces render pass check for each render layer in
`RenderLayer::render()` implementations.
@pozdnyakov pozdnyakov force-pushed the mikhail_sync_render_passes branch from 796650a to 1521fb4 Compare July 11, 2019 11:53
@pozdnyakov pozdnyakov requested a review from a team July 11, 2019 11:53
@pozdnyakov pozdnyakov merged commit d8d64ca into master Jul 11, 2019
@pozdnyakov pozdnyakov deleted the mikhail_sync_render_passes branch July 11, 2019 12:36
@jonkan
Copy link

jonkan commented Jul 11, 2019

I'm still seeing similar issues, see #15085 (comment)

pozdnyakov added a commit that referenced this pull request Jul 18, 2019
Backports #15092 to release-oolong.
pozdnyakov added a commit that referenced this pull request Jul 18, 2019
Backports #15092 to release-nectar.
pozdnyakov added a commit that referenced this pull request Jul 18, 2019
Backports #15092 to release-mojito.
pozdnyakov added a commit that referenced this pull request Jul 19, 2019
Backports #15092 to release-oolong.
pozdnyakov added a commit that referenced this pull request Jul 19, 2019
Backports #15092 to release-mojito.
pozdnyakov added a commit that referenced this pull request Jul 19, 2019
Backports #15092 to release-nectar.
friedbunny added a commit that referenced this pull request Jul 19, 2019
friedbunny added a commit that referenced this pull request Jul 19, 2019
friedbunny added a commit that referenced this pull request Jul 19, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Core The cross-platform C++ core, aka mbgl needs backport Indicates PR needs to be cherrypicked into a previous release branch. needs changelog Indicates PR needs a changelog entry prior to merging.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Map doesn't update correctly according to style updates
6 participants